MFC アプリケーションでコピー アンド ペースト機能を実装するには、AfxOleInit() メソッドを呼び出します。
また、RAPI を使用して Windows Mobile デバイスと通信します。
AfxOleInit を使用しない場合は問題ありません。
しかし、AfxOleInit が実際に実行されるとすぐに、次のシーケンスが再現されます。
- モバイル デバイスはクレードルにあり、Windows Mobile Device Center (WMDC) を介して PC に正しく接続され、CeRapiInitEx と CeRapiUninit が正常に完了します。
- モバイルをクレードルから取り外し、WMDC から切断します
- モバイルをクレードルに置き、CeRapiInitEx と CeRapiUninit が正常に完了しました。
- モバイルをクレードルから取り外し、WMDC から切断します
- その瞬間、Visual Studio の [出力] タブにメッセージが表示されます:「RPC サーバーを利用できません」
- モバイルがクレードルにあることを確認すると、今度は CeRapiInitEx が「RPC サーバーが利用できません」という戻り値で失敗します。
RAPI dll 関数への呼び出しを含むコードを配置しようとしました。
MFC アプリケーションで直接、
DLLで、
ActiveX で
すべてのケースでエラーを再現します。
このコードが、MFC アプリケーションから CreateProcess を介して起動された別のプロセスに配置されている場合、エラーは発生しないことに注意してください。
このエラーを再現するアプリケーションは、次のアドレスからダウンロードできます: http://iode-informatique.com/tests/winmob_mfc/rapi_test_app.zip
AfxOleInit の呼び出しをコメント化すると、エラーは発生しないことに注意してください。
よろしくお願いします。