Win32 API 日本語リファレンス
ホームStorage.FileServerResourceManager › IFsrmPropertyBag

IFsrmPropertyBag

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID774589d1-d300-4f7a-9a24-f7b766800250継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 21

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Name(LPWSTR* name)
nameLPWSTR*out対象ファイルの名前を受け取る文字列ポインタである。
vtbl 8 HRESULT get_RelativePath(LPWSTR* path)
pathLPWSTR*out名前空間ルートからの相対パスを受け取る文字列ポインタである。
vtbl 9 HRESULT get_VolumeName(LPWSTR* volumeName)
volumeNameLPWSTR*outファイルが格納されているボリュームの名前を受け取る文字列ポインタである。
vtbl 10 HRESULT get_RelativeNamespaceRoot(LPWSTR* relativeNamespaceRoot)
relativeNamespaceRootLPWSTR*outファイルが属する名前空間ルートの相対パスを受け取る文字列ポインタである。
vtbl 11 HRESULT get_VolumeIndex(DWORD* volumeId)
volumeIdDWORD*outボリュームを識別するインデックス値を受け取る DWORD ポインタである。
vtbl 12 HRESULT get_FileId(VARIANT* fileId)
fileIdVARIANT*outファイルを一意に識別するファイル ID を格納した VARIANT を受け取るポインタである。
vtbl 13 HRESULT get_ParentDirectoryId(VARIANT* parentDirectoryId)
parentDirectoryIdVARIANT*out親ディレクトリを一意に識別する ID を格納した VARIANT を受け取るポインタである。
vtbl 14 HRESULT get_Size(VARIANT* size)
sizeVARIANT*outファイルのサイズ (バイト数) を格納した VARIANT を受け取るポインタである。
vtbl 15 HRESULT get_SizeAllocated(VARIANT* sizeAllocated)
sizeAllocatedVARIANT*outファイルに割り当てられたサイズ (バイト数) を格納した VARIANT を受け取るポインタである。
vtbl 16 HRESULT get_CreationTime(VARIANT* creationTime)
creationTimeVARIANT*outファイルの作成日時を格納した VARIANT を受け取るポインタである。
vtbl 17 HRESULT get_LastAccessTime(VARIANT* lastAccessTime)
lastAccessTimeVARIANT*outファイルの最終アクセス日時を格納した VARIANT を受け取るポインタである。
vtbl 18 HRESULT get_LastModificationTime(VARIANT* lastModificationTime)
lastModificationTimeVARIANT*outファイルの最終更新日時を格納した VARIANT を受け取るポインタである。
vtbl 19 HRESULT get_Attributes(DWORD* attributes)
attributesDWORD*outファイルの属性を示すフラグの組み合わせを受け取る DWORD ポインタである。
vtbl 20 HRESULT get_OwnerSid(LPWSTR* ownerSid)
ownerSidLPWSTR*outファイルの所有者のセキュリティ識別子 (SID) を文字列で受け取るポインタである。
vtbl 21 HRESULT get_FilePropertyNames(SAFEARRAY** filePropertyNames)
filePropertyNamesSAFEARRAY**outファイルに設定されているプロパティ名の一覧を格納した SAFEARRAY を受け取るポインタである。
vtbl 22 HRESULT get_Messages(SAFEARRAY** messages)
messagesSAFEARRAY**outプロパティバッグに記録されたメッセージの一覧を格納した SAFEARRAY を受け取るポインタである。
vtbl 23 HRESULT get_PropertyBagFlags(DWORD* flags)
flagsDWORD*outプロパティバッグの状態を示すフラグの組み合わせを受け取る DWORD ポインタである。
vtbl 24 HRESULT GetFileProperty(LPWSTR name, IFsrmProperty** fileProperty)
nameLPWSTRin取得対象のファイルプロパティの名前を指定する文字列である。
filePropertyIFsrmProperty**out指定した名前に一致するファイルプロパティを表す IFsrmProperty インターフェイスを受け取るポインタである。
vtbl 25 HRESULT SetFileProperty(LPWSTR name, LPWSTR value)
nameLPWSTRin設定対象のファイルプロパティの名前を指定する文字列である。
valueLPWSTRinプロパティに設定する値を指定する文字列である。
vtbl 26 HRESULT AddMessage(LPWSTR message)
messageLPWSTRinプロパティバッグに追加するメッセージ文字列を指定する。
vtbl 27 HRESULT GetFileStreamInterface(FsrmFileStreamingMode accessMode, FsrmFileStreamingInterfaceType interfaceType, VARIANT* pStreamInterface)
accessModeFsrmFileStreamingModeinファイルストリームへのアクセスモードを示す FsrmFileStreamingMode 列挙値を指定する。
interfaceTypeFsrmFileStreamingInterfaceTypein取得するファイルストリームインターフェイスの種類を示す FsrmFileStreamingInterfaceType 列挙値を指定する。
pStreamInterfaceVARIANT*out指定したファイルストリームインターフェイスを格納した VARIANT を受け取るポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IFsrmPropertyBag "{774589D1-D300-4F7A-9A24-F7B766800250}"
#usecom global IFsrmPropertyBag IID_IFsrmPropertyBag "{}"
#comfunc global IFsrmPropertyBag_get_Name                   7 var
#comfunc global IFsrmPropertyBag_get_RelativePath           8 var
#comfunc global IFsrmPropertyBag_get_VolumeName             9 var
#comfunc global IFsrmPropertyBag_get_RelativeNamespaceRoot  10 var
#comfunc global IFsrmPropertyBag_get_VolumeIndex            11 var
#comfunc global IFsrmPropertyBag_get_FileId                 12 var
#comfunc global IFsrmPropertyBag_get_ParentDirectoryId      13 var
#comfunc global IFsrmPropertyBag_get_Size                   14 var
#comfunc global IFsrmPropertyBag_get_SizeAllocated          15 var
#comfunc global IFsrmPropertyBag_get_CreationTime           16 var
#comfunc global IFsrmPropertyBag_get_LastAccessTime         17 var
#comfunc global IFsrmPropertyBag_get_LastModificationTime   18 var
#comfunc global IFsrmPropertyBag_get_Attributes             19 var
#comfunc global IFsrmPropertyBag_get_OwnerSid               20 var
#comfunc global IFsrmPropertyBag_get_FilePropertyNames      21 var
#comfunc global IFsrmPropertyBag_get_Messages               22 var
#comfunc global IFsrmPropertyBag_get_PropertyBagFlags       23 var
#comfunc global IFsrmPropertyBag_GetFileProperty            24 wstr,sptr
#comfunc global IFsrmPropertyBag_SetFileProperty            25 wstr,wstr
#comfunc global IFsrmPropertyBag_AddMessage                 26 wstr
#comfunc global IFsrmPropertyBag_GetFileStreamInterface     27 int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。