DWORD RalEnumerateAssociatedExtensions( PRALENUMERATE pfnEnumerate, HWND hWnd, UINT uMessage, LPARAM lParam, PCTSTR pszItem );

PRALENUMERATE pfnEnumerate;  /* コールバック関数アドレス */
HWND hWnd; /* 列挙先ウィンドウハンドル */
UINT uMessage; /* メッセージ */
LPARAM lParam; /* アプリケーション定義の値 */
PCTSTR pszItem; /* アプリケーション情報キー名 */

指定されたアプリケーション情報キー名にアタッチしている拡張子のキー名を列挙します。列挙はコールバック関数呼び出しによる方法とメッセージ送信による方法とがあります。

引数

pfnEnumerate  コールバック関数のアドレスを指定します。
コールバックによる列挙を行う場合はpfnEnumeratelParam引数が使用されます。
pfnEnumerateにはNULLを指定できます。
pfnEnumerateにNULLを指定した場合はコールバック関数による列挙を行いません。
コールバック関数は以下のインタフェースになっている必要があります。
  BOOL STDCALL Enumerate( DWORD dwIndex, PCTSTR pszName, LPARAM lParam );
pfnEnumerate引数の型であるPRALENUMERATEは上記のインタフェースを持つ関数ポインタ型として定義されています。
dwIndexには0から始まる符号無し整数が渡され、この値は列挙される毎に順にインクリメントされます。
pszNameには実際に列挙された拡張子キー名が文字列で渡されます。
拡張子キー名はAPIがアロケートしたメモリに格納されているのでコールバック関数内で変更することは出来ません。
lParamにはAPIのlParam引数に指定したモノがそのまま毎回渡されます。
メッセージ送信による列挙を行う場合はpfnEnumerate引数は使用されません。
hWnd メッセージを送信するウィンドウハンドルを指定します。
メッセージ送信による列挙を行う場合はhWnduMessage引数が使用されます。
メッセージ送信による列挙の場合は列挙された拡張子キー名は第二パラメータで渡されます。
hWndにはNULLを指定できます。
hWndにNULLを指定した場合はメッセージ送信による列挙を行いません。
コールバックによる列挙を行う場合はhWnd引数は使用されません。
uMessage hWnd引数で指定されたウィンドウに送信するメッセージ値を指定します。
コールバックによる列挙を行う場合はuMessage引数は使用されません。
lParam コールバックによる列挙を行う場合はlParam引数が毎回そのままpfnEnumerateで指定されたコールバック関数に渡されます。
メッセージ送信による列挙を行う場合はlParam引数は使用されません。
pszItem アプリケーション情報キー名を指定します。
pszItemにはNULLを指定できません。

戻り値

正常終了なら拡張子の個数、それ以外は0xFFFFFFFFを返します。


戻る