Win32 API 日本語リファレンス
ホームSystem.Search › IUrlAccessor

IUrlAccessor

COM
IID0b63e318-9ccc-11d0-bcdb-00805fccce04継承元IUnknown自前メソッド開始 vtbl3

メソッド 13

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT AddRequestParameter(PROPSPEC* pSpec, PROPVARIANT* pVar)
pSpecPROPSPEC*in追加するリクエストパラメーターを識別する PROPSPEC へのポインタである。
pVarPROPVARIANT*inリクエストパラメーターに設定する値を格納した PROPVARIANT へのポインタである。
vtbl 4 HRESULT GetDocFormat(LPWSTR wszDocFormat, DWORD dwSize, DWORD* pdwLength)
wszDocFormatLPWSTRoutドキュメント形式を表す文字列を受け取るバッファである。
dwSizeDWORDinwszDocFormat バッファのサイズ(文字数)を指定する。
pdwLengthDWORD*out書き込まれた文字列の長さを受け取る出力ポインタである。
vtbl 5 HRESULT GetCLSID(GUID* pClsid)
pClsidGUID*outこのアクセサーに関連付けられた CLSID を受け取る出力ポインタである。
vtbl 6 HRESULT GetHost(LPWSTR wszHost, DWORD dwSize, DWORD* pdwLength)
wszHostLPWSTRoutURL のホスト名を受け取るバッファである。
dwSizeDWORDinwszHost バッファのサイズ(文字数)を指定する。
pdwLengthDWORD*out書き込まれた文字列の長さを受け取る出力ポインタである。
vtbl 7 HRESULT IsDirectory()
vtbl 8 HRESULT GetSize(ULONGLONG* pllSize)
pllSizeULONGLONG*out対象アイテムのサイズ(バイト数)を受け取る出力ポインタである。
vtbl 9 HRESULT GetLastModified(FILETIME* pftLastModified)
pftLastModifiedFILETIME*out対象アイテムの最終更新日時を表す FILETIME を受け取る出力ポインタである。
vtbl 10 HRESULT GetFileName(LPWSTR wszFileName, DWORD dwSize, DWORD* pdwLength)
wszFileNameLPWSTRout対象アイテムのファイル名を受け取るバッファである。
dwSizeDWORDinwszFileName バッファのサイズ(文字数)を指定する。
pdwLengthDWORD*out書き込まれた文字列の長さを受け取る出力ポインタである。
vtbl 11 HRESULT GetSecurityDescriptor(BYTE* pSD, DWORD dwSize, DWORD* pdwLength)
pSDBYTE*out対象アイテムのセキュリティ記述子を受け取るバイトバッファである。
dwSizeDWORDinpSD バッファのサイズ(バイト数)を指定する。
pdwLengthDWORD*out書き込まれたセキュリティ記述子のバイト数を受け取る出力ポインタである。
vtbl 12 HRESULT GetRedirectedURL(LPWSTR wszRedirectedURL, DWORD dwSize, DWORD* pdwLength)
wszRedirectedURLLPWSTRoutリダイレクト先の URL を受け取るバッファである。
dwSizeDWORDinwszRedirectedURL バッファのサイズ(文字数)を指定する。
pdwLengthDWORD*out書き込まれた文字列の長さを受け取る出力ポインタである。
vtbl 13 HRESULT GetSecurityProvider(GUID* pSPClsid)
pSPClsidGUID*out対象アイテムのセキュリティを処理するプロバイダーの CLSID を受け取る出力ポインタである。
vtbl 14 HRESULT BindToStream(IStream** ppStream)
ppStreamIStream**out対象アイテムの内容にアクセスする IStream を受け取る出力ポインタである。
vtbl 15 HRESULT BindToFilter(IFilter** ppFilter)
ppFilterIFilter**out対象アイテムの内容を解析する IFilter を受け取る出力ポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IUrlAccessor "{0B63E318-9CCC-11D0-BCDB-00805FCCCE04}"
#usecom global IUrlAccessor IID_IUrlAccessor "{}"
#comfunc global IUrlAccessor_AddRequestParameter    3 var,var
#comfunc global IUrlAccessor_GetDocFormat           4 var,int,var
#comfunc global IUrlAccessor_GetCLSID               5 var
#comfunc global IUrlAccessor_GetHost                6 var,int,var
#comfunc global IUrlAccessor_IsDirectory            7
#comfunc global IUrlAccessor_GetSize                8 var
#comfunc global IUrlAccessor_GetLastModified        9 var
#comfunc global IUrlAccessor_GetFileName            10 var,int,var
#comfunc global IUrlAccessor_GetSecurityDescriptor  11 var,int,var
#comfunc global IUrlAccessor_GetRedirectedURL       12 var,int,var
#comfunc global IUrlAccessor_GetSecurityProvider    13 var
#comfunc global IUrlAccessor_BindToStream           14 sptr
#comfunc global IUrlAccessor_BindToFilter           15 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。