CoInitialize関数
もう一つの問題はCoInitialize関数でした。
Win32系では問題ないのでしたが、eVC++4.0でやると
error C2039: 'CoInitialize' : is not a member of '`global namespace''
というメッセージを吐いてくれます。結局ヘッダファイル(objbase.h)を見比べたのですがパスされているようなのでCoInitializeExを使用することに。
MySrvのインスタンスの生成はこんな感じになりました。
CLSID clsID; HRESULT hr; hr = CLSIDFromProgID(OLESTR("MySrvCe.MyObj"), &clsID); if (FAILED(hr)) { AfxMessageBox(_T("Retrieval of ProgID")); return FALSE; } ::CoInitializeEx(NULL, COINIT_MULTITHREADED); m_pMyObj.CreateInstance(clsID);
ともかくこれでCE上でもATLのCOMサーバオブジェクトとMFCのCOMクライアントの動作確認ができましたので本来のコードを書いていきます。