データ オブジェクトからシェル項目配列オブジェクトを作成します。
構文
SHSTDAPI SHCreateShellItemArrayFromDataObject(
[in] IDataObject *pdo,
[in] REFIID riid,
[out] void **ppv
);
パラメーター
[in] pdo
型: IDataObject*
IDataObject インターフェイスへのポインター。
[in] riid
型: REFIID
目的のインターフェイス ID への参照。
[out] ppv
型: void**
このメソッドが戻るときに、 riid で要求されたインターフェイス ポインターを格納します。 これは通常、 IShellItemArray です。
戻り値
型: HRESULT
この関数が成功すると、S_OKが返 されます。 それ以外の場合は、 HRESULT エラー コードが返されます。
注釈
この関数は、 IShellExtInit を実装し、データ オブジェクトを IShellExtInit::Initialize メソッドに渡すシェル拡張機能に役立ちます。たとえば、コンテキスト メニュー ハンドラーなどです。
この API を使用すると、データ オブジェクトをハンドラーが使用できるシェル項目に変換できます。 ハンドラーでは、コードが単純になり、パフォーマンスが向上するため、 CF_HDROP や CFSTR_SHELLIDLIST (HIDA とも呼ばれます) などのクリップボード形式ではなくシェル項目配列を使用することをお勧めします。
結果のシェル項目配列は、ソース データ オブジェクトへの参照を保持します。 そのため、そのデータ オブジェクトは、シェル項目配列の有効期間中有効なままである必要があります。 特に、 IDropTarget メソッドに渡されるデータ オブジェクトは、ドロップ操作の完了後に無効になります。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | shobjidl_core.h (Shobjidl.h を含む) |
| Library | OneCore.Lib |
| DLL | Shell32.dll |
| API セット | ext-ms-win-shell-shell32-l1-2-2 (Windows 10 バージョン 10.0.14393 で導入) |