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