IShellLibrary::LoadLibraryFromItem メソッド (shobjidl_core.h)
指定したライブラリ定義ファイルからライブラリを読み込みます。
構文
HRESULT LoadLibraryFromItem(
[in] IShellItem *psiLibrary,
[in] DWORD grfMode
);
パラメーター
[in] psiLibrary
種類: IShellItem*
読み込むライブラリ定義ファイルの IShellItem オブジェクト。 このオブジェクトがライブラリでない場合は、エラーが返されます。
[in] grfMode
型: DWORD
ライブラリ オブジェクトのアクセス モードと共有モードを指定する 1 つ以上の STGM ストレージ メディア フラグ。
戻り値
種類: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
既に読み込まれている IShellLibrary オブジェクトでこのメソッドが呼び出された場合、そのオブジェクトの内容はメモリ内で新しい情報で上書きされます。
既存のライブラリ オブジェクトがない場合は、このメソッドの代わりに SHLoadLibraryFromItem を呼び出すことができます。
例
次のコード例は、このメソッドをラップするヘルパー関数 SHLoadLibraryFromItem を示しています。
//
// from shobjidl.h
//
__inline HRESULT SHLoadLibraryFromItem(
__in IShellItem *psiLibrary,
__in DWORD grfMode,
__in REFIID riid,
__deref_out void **ppv
)
{
*ppv = NULL;
IShellLibrary *plib;
HRESULT hr = CoCreateInstance(
CLSID_ShellLibrary,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&plib));
if (SUCCEEDED(hr))
{
hr = plib->LoadLibraryFromItem (psiLibrary, grfMode);
if (SUCCEEDED(hr))
{
hr = plib->QueryInterface (riid, ppv);
}
plib->Release();
}
return hr;
}
次のコード例は、このメソッドをラップするヘルパー関数 SHLoadLibraryFromParsingName を示しています。
//
// from shobjidl.h
//
__inline HRESULT SHLoadLibraryFromParsingName(
__in PCWSTR pszParsingName,
__in DWORD grfMode,
__in REFIID riid,
__deref_out void **ppv
)
{
*ppv = NULL;
IShellItem *psiLibrary;
HRESULT hr = SHCreateItemFromParsingName (
pszParsingName,
NULL,
IID_PPV_ARGS(&psiLibrary));
if (SUCCEEDED(hr))
{
hr = SHLoadLibraryFromItem (psiLibrary, grfMode, riid, ppv);
psiLibrary->Release();
}
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |