Q: 私の「Navigation Services」ダイアログでは、ファイルまたはフォルダをドラッグ&ドロップしても場所は変わりません。それ以外のアプリケーションではこの操作がうまくいきます。 私のアプリケーションでも機能させるにはどうしたらよいでしょうか。A: 「Navigation Services」ダイアログの作成または実行を呼び出す際に、NULL 以外の eventProc が必要です。 何もしない eventProc でも構いません。 こうすると、Navigation Services コードはデフォルトの動作のイベント処理を(何もしない)eventProc に追加する機会を得ることになります。さもなければ、eventProc が NULL であると、Navigation Services はそのデフォルトの動作を追加しようとせず、どのような動作も要求されていないと見なします。 デフォルトの動作のイベント処理は当然、ドラッグ&ドロップを処理して場所を変更するというものです。 リスト 1 に示す次の eventProc を使用することができます: リスト 1. 空の event Proc
pascal void myDoNothingEventProc(NavEventCallbackMessage callBackSelector,
NavCBRecPtr callBackParms, void * callBackUD)
{
}
次のリスト 2 を使用して、この eventProc を指定することができます: リスト 2. 空の event Proc の使用
NavEventUPP myDoNothingEventProcUPP = NewNavEventUPP(myDoNothingEventProc);
err = NavCreatePutFileDialog(
&navOptions,
kmyApplicationSignature,
kmyFileType,
myDoNothingEventProcUPP,
clientData,
&navDialog
);
DisposeNavEventUPP(myDoNothingEventProcUPP);
上記のリスト 2 では、NavPutFile、NavGetFile、NavCreateChooseFileDialog など、他のいずれかの Navigation Services API も使用できます。 ドキュメントの改訂履歴掲載日: 2004-09-27
|