次の方法で共有


SHCreateDataObject 関数 (shlobj_core.h)

親フォルダーにデータ オブジェクトを作成します。

構文

SHSTDAPI SHCreateDataObject(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in]           UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IDataObject           *pdtInner,
  [in]           REFIID                riid,
  [out]          void                  **ppv
);

パラメーター

[in, optional] pidlFolder

型: PCIDLIST_ABSOLUTE

データ オブジェクトを含む親フォルダーの ITEMIDLIST (PIDL) へのポインター。

[in] cidl

型: UINT

apidl パラメーターで指定されたファイル オブジェクトまたはサブフォルダーの数。

[in, optional] apidl

型: PCUITEMID_CHILD_ARRAY

定数 ITEMIDLIST 構造体へのポインターの配列。各構造体は、親フォルダーに対する相対ファイル オブジェクトまたはサブフォルダーを一意に識別します。 各項目 ID リストには、1 つの SHITEMID 構造体の後に終了ゼロが続く必要があります。

[in, optional] pdtInner

型: IDataObject*

インターフェイス IDataObject へのポインター。 このパラメーターには NULL を指定できます。 pdtInner を指定するのは、作成時に割り当てられる既定の形式を超えて、作成されたデータ オブジェクトが追加の FORMATETC クリップボード形式をサポートする必要がある場合のみです。 または、メソッド IDataObject::SetData を呼び出し、パラメーター pFormatetc で渡される FORMATETC 構造体で形式を指定することで、既定以外のクリップボード形式を使用して作成されたデータ オブジェクトを設定するサポートを提供します。

[in] riid

型: REFIID

ppv を介して取得するインターフェイスの IID への参照。 これはIID_IDataObjectする必要があります。

[out] ppv

型: void**

このメソッドが正常に返されると、riid で要求された IDataObject インターフェイス ポインターが含まれます。

戻り値

型: HRESULT

この関数が成功すると、S_OKが返 されます。 それ以外の場合は、 HRESULT エラー コードが返されます。

注釈

この関数は、通常、 メソッド IShellFolder::GetUIObjectOf を実装するときに呼び出されます。 (パラメーター riid を使用して) インターフェイス ID IID_IDataObjectのインターフェイス ポインターが要求されると、実装者は、応答で SHCreateDataObject で作成されたオブジェクトのインターフェイス ポインターを返すことができます。

この関数は 、CFSTR_SHELLIDLIST (HIDA とも呼ばれます) クリップボード形式をサポートし、 IDataObject::SetData を介して任意のクリップボード形式を汎用でサポートしています。 クリップボード形式の詳細については、「シェル クリップボードの形式」を参照してください。

新しいデータ オブジェクトは、ドラッグ アンド ドロップなどの操作で使用することを目的としています。ドラッグ アンド ドロップでは、指定した形式でデータがクリップボードに格納されます。

riid パラメーターと ppv パラメーターをパッケージ化するには、Objbase.h で定義されている IID_PPV_ARGS マクロを使用することをお勧めします。 このマクロは 、ppv の値によって指されるインターフェイスに基づいて正しい IID を提供します。これにより、予期しない結果につながる可能性のある riid でのコーディング エラーの可能性がなくなります。

Requirements

Requirement 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム ウィンドウズ
Header shlobj_core.h (Shlobj.h を含む)
Library OneCore.Lib
DLL Shell32.dll
API セット ext-ms-win-shell-shell32-l1-2-2 (Windows 10 バージョン 10.0.14393 で導入)

こちらも参照ください

CIDLData_CreateFromIDArray