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 構造体へのポインターの配列。各構造体は、親フォルダーを基準にしてファイル オブジェクトまたはサブフォルダーを一意に識別します。 各項目識別子リストには、1 つの SHITEMID 構造体の後に終端の 0 が続く必要があります。
[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 を実装するときに呼び出されます。 インターフェイス ID IID_IDataObjectのインターフェイス ポインターが要求された場合 (パラメーター riid を使用)、実装者は、応答として SHCreateDataObject で作成されたオブジェクトのインターフェイス ポインターを返すことができます。
この関数は 、CFSTR_SHELLIDLIST (HIDA とも呼ばれます) クリップボード形式をサポートし、 IDataObject::SetData を介した任意のクリップボード形式の汎用サポートも備えています。 クリップボード形式の詳細については、「シェル クリップボード形式」を参照してください。
新しいデータ オブジェクトは、データが特定の形式でクリップボードに格納されるドラッグ アンド ドロップなどの操作で使用することを目的としています。
riid パラメーターと ppv パラメーターをパッケージ化するには、Objbase.h で定義されているIID_PPV_ARGS マクロを使用することをお勧めします。 このマクロは 、ppv の値によって指されるインターフェイスに基づいて正しい IID を提供します。これにより、 riid でコーディング エラーが発生し、予期しない結果が発生する可能性がなくなります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h (Shlobj.h を含む) |
[DLL] | Shell32.dll |
API セット | ext-ms-win-shell-shell32-l1-2-2 (Windows 10 バージョン 10.0.14393 で導入) |