CIDA 構造体 (shlobj_core.h)

1 つ 以上のシェル 名前空間オブジェクトの項目識別子リスト (PIDL) にポインターを転送するために、CFSTR_SHELLIDLISTクリップボード形式で使用されます。

構文

typedef struct _IDA {
  UINT cidl;
  UINT aoffset[1];
} CIDA, *LPIDA;

メンバー

cidl

型: UINT

親フォルダーを含まない、転送される PID の数。

aoffset[1]

型: UINT[1]

この構造体の先頭を基準としたオフセットの配列。 配列には cidl+1 要素が含まれています。 aoffset の最初の要素には、親フォルダーの完全修飾 PIDL へのオフセットが含まれています。 この PIDL が空の場合、親フォルダーはデスクトップです。 配列の残りの各要素には、転送する PID の 1 つへのオフセットが含まれています。 これらの PID は、すべて親フォルダーの PIDL に対して相対的です。

注釈

この構造体を使用して特定の PIDL を取得するには、PIDL の aoffset 値を 構造体のアドレスに追加します。 構造体から PIDL を取得するには、次の 2 つのマクロを使用できます。 最初の は、親フォルダーの PIDL を取得します。 2 つ目は、0 から始まるインデックスで指定された PIDL を取得します。

#define HIDA_GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define HIDA_GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])

これらのマクロによって返される値は、 ITEMIDLIST 構造体へのポインターです。 これらの構造体は長さが異なるため、解析して構造体の末尾を決定する必要があります。 PID と ITEMIDLIST 構造体の詳細については、「NameSpace」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header shlobj_core.h (Shlobj.h を含む)