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種類が利用出来ます。
この際にhWndpfnNotifyuMessagewParamlParam引数が利用されます。
メッセージによる通知の場合にはhWnduMessagewParamlParam が使用されます。
hWndはメッセージの送り先のウィンドウハンドルを指定します。
この引数はRE_SHOWUIオプション指定時にはオーナウィンドウとしても使用されます。
つまりダイアログのオーナウィンドウとメッセージ通知を兼ねることになります。
uMessageは通知先ウィンドウに送りたいメッセージ値を指定します。
またwParamlParamはメッセージを送る際に付加される第一パラメータと第二パラメータです。
関数コールによる通知の場合にはpfnNotifylParamが使用されます。
通知関数は以下のインタフェースになっている必要があります。
  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を返します。


戻る