次の方法で共有


SHCreateShellItemArrayFromDataObject 関数 (shobjidl_core.h)

データ オブジェクトからシェル項目配列オブジェクトを作成します。

構文

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_HDROPCFSTR_SHELLIDLIST (HIDA とも呼ばれます) などのクリップボード形式ではなくシェル項目配列を使用することをお勧めします。

結果のシェル項目配列は、ソース データ オブジェクトへの参照を保持します。 したがって、そのデータ オブジェクトは、シェル項目配列の有効期間にわたって有効なままである必要があります。 特に、 IDropTarget メソッドに渡されるデータ オブジェクトは、ドロップ操作の完了後に無効になります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h (Shobjidl.h を含む)
[DLL] Shell32.dll
API セット ext-ms-win-shell-shell32-l1-2-2 (Windows 10 バージョン 10.0.14393 で導入)