DWORD RalEnumerateVerbs( PRALENUMERATE pfnEnumerate, HWND hWnd, UINT uMessage, LPARAM lParam, PCTSTR pszExtension, PCTSTR pszItem );
PRALENUMERATE pfnEnumerate; | /* コールバック関数アドレス */ |
HWND hWnd; | /* 列挙先ウィンドウハンドル */ |
UINT uMessage; | /* メッセージ */ |
LPARAM lParam; | /* アプリケーション定義の値 */ |
PCTSTR pszExtension; | /* 拡張子 */ |
PCTSTR pszItem; | /* アプリケーション情報キー名 */ |
動詞キー名を列挙します。列挙はコールバック関数呼び出しによる方法とメッセージ送信による方法とがあります。
引数
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引数は使用されません。pszExtension 動詞を列挙する拡張子を指定します。
pszExtensionにはNULLを指定できます。
pszExtensionにNULLを指定した場合はpszItem引数が使用されます。
pszExtensionとpszItemの両方にNULLを指定することは出来ません。pszItem 動詞を列挙するアプリケーション情報キー名を指定します。
pszItemにはNULLを指定できます。
pszItemにNULLを指定した場合はpszExtension引数が使用されます。
pszExtensionとpszItemの両方にNULLを指定することは出来ません。
戻り値
正常終了なら動詞の個数、それ以外は0xFFFFFFFFを返します。