int RalExecute( HWND hWnd, PCTSTR pszFilename, PCTSTR pszExtension, PCTSTR pszItem, PRALNOTIFY pfnNotify, UINT uMessage, WPARAM wParam, LPARAM lParam, DWORD dwOption );
HWND | hWnd; |
char | *pszFilename; |
char | *pszExtension; |
char | *pszItem; |
PRALNOTIFY | pfnNotify; |
UINT | uMessage; |
WPARAM | wParam; |
LPARAM | lParam; |
DWORD | dwOption; |
関連付け情報を元にアプリケーションを起動します。
引数
hWnd ダイアログ等のオーナウィンドウハンドルを指定します。
hWndにはNULLを指定できます。pszFilename ファイル名を指定します。
pszFilenameにはNULLを指定できません。
RalExecuteはpszFilenameで指定されたファイル名の拡張子に関連付けられているアプリケーションを起動します。pszExtension 関連付け情報として利用する拡張子を指定します。
pszExtensionにはNULLを指定できます。
pszExtensionにNULLを指定した場合はpszFilenameで指定されたファイル名の拡張子から関連付け情報を取得します。pszItem 関連付け情報として利用するアプリケーション情報キー名を指定します。
pszItemにはNULLを指定できます。
pszItemにNULLを指定した場合はpszFilenameで指定されたファイル名の拡張子から関連付け情報を取得します。pfnNotify 通知を行うコールバック関数のアドレスを指定します。
詳しくはdwOptionを参照してください。uMessage 通知メッセージを指定します。
詳しくはdwOptionを参照してください。wParam 通知メッセージの第一引数を指定します。
詳しくはdwOptionを参照してください。lParam 通知メッセージの第二引数を指定します。
詳しくはdwOptionを参照してください。dwOption RalExecuteの動作を決定するオプションを指定します。
以下のフラグを組み合わせて指定できます。RE_SHOWUI 関連付け情報をRALが取得できなかった場合にユーザインタフェースを用いてユーザに関連付けを促します。
このオプションを指定した場合はhWnd引数がダイアログのオーナウィンドウとして使用されます。RE_SYNCHRONIZE 関連付け起動が正常に行われた場合に、起動したアプリケーションの終了を監視します。
詳しくは下のRE_BLOCKを参照してください。
RE_SYNCHRONIZEが指定されている場合はアプリケーションの終了を通知することが出来ます。
通知手段はメッセージによるものと関数コールによるモノの2種類が利用出来ます。
この際にhWnd、pfnNotify、uMessage、wParam、lParam引数が利用されます。
メッセージによる通知の場合にはhWnd、uMessage、wParam、lParam が使用されます。
hWndはメッセージの送り先のウィンドウハンドルを指定します。
この引数はRE_SHOWUIオプション指定時にはオーナウィンドウとしても使用されます。
つまりダイアログのオーナウィンドウとメッセージ通知を兼ねることになります。
uMessageは通知先ウィンドウに送りたいメッセージ値を指定します。
またwParam、lParamはメッセージを送る際に付加される第一パラメータと第二パラメータです。
関数コールによる通知の場合にはpfnNotify、lParamが使用されます。
通知関数は以下のインタフェースになっている必要があります。
DWORD STDCALL Notify( DWORD dwCode, PCTSTR pszReserved, LPARAM lParam );
pfnNotify引数の型であるPRALNOTIFYは上記のインタフェースを持つ関数ポインタ型として定義されています。
dwCodeにはRNC_TERMINATEが渡されます。
pszReservedは現在未定義です。
lParamはRalExecuteのlParam引数に指定されたモノがそのまま渡されます。
コールバック関数は0を返す必要があります。RE_BLOCK 関連付け起動が正常に行われた場合に、起動したアプリケーションが終了するまで呼び出し側に制御を返しません。
起動したアプリケーションが終了するとRalExecuteからリターンします。
RE_BLOCKが指定された場合は自動的にRE_SYNCHRONIZEも指定されたことになります。RE_POST メッセージ通知を行う際にメッセージ送信の同期をしないことを指定します。
RE_POSTが指定された場合はメッセージによる通知の際にSendMessageを使用せずにPostMessageを使用するようになります。
戻り値
正常終了なら1、キャンセルなら0、それ以外は-1を返します。