ShellFolderItem.ExtendedProperty 메서드
항목의 속성 집합에서 속성 값을 가져옵니다. 속성은 이름 또는 속성 집합의 FMTID(형식 식별자) 및 PID(속성 식별자)로 지정할 수 있습니다.
구문
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
매개 변수
-
sPropName [in]
-
형식: BSTR
속성을 지정하는 String 값입니다. 자세한 내용은 설명 단원을 참조 하십시오.
반환 값
형식: Variant*
이 메서드가 반환될 때 지정된 항목에 대해 속성이 있는 경우 속성 값이 포함됩니다. 값에는 전체 입력이 있습니다. 예를 들어 날짜는 문자열이 아닌 날짜로 반환됩니다.
이 메서드는 속성이 유효하지만 지정된 항목에 대해 존재하지 않거나 오류 코드가 없는 경우 길이가 0인 문자열을 반환합니다.
설명
속성을 지정하는 방법에는 두 가지가 있습니다. 첫 번째는 속성의 잘 알려진 이름(예: "Author" 또는 "Date")을 sPropName에 할당하는 것입니다. 그러나 각 속성은 COM(구성 요소 개체 모델) 속성 집합의 멤버이며 FMTID(형식 ID) 및 PID(속성 ID)를 지정하여 식별할 수도 있습니다. FMTID는 속성 집합을 식별하는 GUID이며 PID는 속성 집합 내의 특정 속성을 식별하는 정수입니다.
FMTID/PID 값으로 속성을 지정하는 것은 일반적으로 이름을 사용하는 것보다 더 효율적입니다. 속성의 FMTID/PID 값을 ExtendedProperty와 함께 사용하려면 SCID로 결합해야 합니다. SCID는 "FMTID**PID" 형식의 FMTID/PID 값을 포함하는 문자열입니다. 여기서 FMTID는 속성 집합 GUID의 문자열 형식입니다. 예를 들어 요약 정보 속성 집합의 author 속성의 SCID는 "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4"입니다.
현재 셸에서 지원되는 FMTID 및 PID 목록은 SHCOLUMNID를 참조하세요.
예제
이 샘플 코드에서는 ExtendedProperty를 사용하여 Word 문서에서 "Title" 및 "Author" 속성을 검색하는 방법을 보여 줍니다. ShellFolderItem 개체가 파일과 연결되면 이 예제의 fiWordDoc에서 해당 이름을 ExtendedProperty에 전달하여 속성의 값을 검색합니다.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
더 빠르고 효율적인 방법은 SCID를 ExtendedProperty에 전달하는 것입니다.
...
FMTID_SummaryInfo="{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"
PID_TITLE="2"
PID_AUTHOR="4"
SCID_TITLE=FMTID_SummaryInfo+" "+PID_TITLE
SCID_AUTHOR=FMTID_SummaryInfo+" "+PID_AUTHOR
Doc_Title=fiWordDoc.ExtendedProperty(SCID_TITLE)
Doc_Author=fiWordDoc.ExtendedProperty(SCID_AUTHOR)
...
다음 예제에서는 JScript, VBScript 및 Visual Basic에 대해 이 메서드를 적절하게 사용하는 방법을 보여 줍니다.
Jscript:
<script language="JScript">
function fnFolderItem2ExtendedPropertyJ()
{
var objShell = new ActiveXObject("shell.application");
var objFolder2;
var ssfWINDOWS = 36;
objFolder2 = objShell.NameSpace(ssfWINDOWS);
if (objFolder2 != null)
{
var objFolderItem;
objFolderItem = objFolder2.ParseName("NOTEPAD.EXE");
if (objFolderItem != null)
{
var szReturn = "";
szReturn = objFolderItem.ExtendedProperty("infotip");
alert(szReturn);
}
}
}
</script>
Vbscript:
<script language="VBScript">
function fnFolderItemExtendedPropertyVB()
dim objShell
set objShell = CreateObject("shell.application")
if (not objShell is nothing) then
dim objFolder2
dim ssfWINDOWS
ssfWINDOWS = 36
set objFolder2 = objShell.NameSpace(ssfWINDOWS)
if (not objFolder2 is nothing) then
dim objFolderItem
set objFolderItem = objFolder2.Self
if (not objFolderItem is nothing) then
dim szReturn
szReturn = objFolderItem.ExtendedProperty("type")
alert(szReturn)
end if
set objFolderItem = nothing
end if
set objFolder2 = nothing
end if
set objShell = nothing
end function
</script>
Visual Basic:
Private Sub fnFolderItem2ExtendedPropertyVB()
Dim objShell As Shell
Dim objFolder2 As Folder2
Dim ssfWINDOWS As Long
ssfWINDOWS = 36
Set objShell = New Shell
Set objFolder2 = objShell.NameSpace(ssfWINDOWS)
If (Not objFolder2 Is Nothing) Then
Dim objFolderItem2 As Object
Set objFolderItem2 = objFolder2.ParseName("NOTEPAD.EXE")
If (Not objFolderItem2 Is Nothing) Then
Dim szReturn As String
szReturn = objFolderItem2.ExtendedProperty("size")
Debug.Print szReturn
Else
'FolderItem object returned nothing.
End If
Set objFolderItem2 = Nothing
Else
'Folder object returned nothing.
End If
Set objFolder2 = Nothing
Set objShell = Nothing
End Sub
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|
IDL |
|
DLL |
|