>>884 ありがとうございます!
BCCだけで何とかするように頑張っている訳ですが、きっと参考になると思います!
しかし何でこの部分「Platform SDK: COM」文書はウヤムヤな事しか書いていないのか・・・
で、一応報告。
まだまだゴソゴソやってるんですが、自作コントロールの場合、
1. RegisterClass() / g_hWndMain = CreateWindow("MyClass")
2. CoCreateInstance(CLSID_..., IID_IOleObject, &pOleObject)
3. pOleObject->EnumVerbs() // 取得したポインタはそのまま捨てる(Release)
4. pOleObject->QueryInterface(IID_IOleWindow, &pOleWindow);
5. pOleWindow->GetWindow(&g_hWndWBC)
6. SetParent(g_hWndCtrl, g_hWndMain); // 無理矢理子ウィンドウに(^^;)
7. ShowWindow(g_hWndWBC, SW_SHOW); // 表示
8. メッセージループ突入
こんなやり方で、一応表示されているように見えます。コントロールに搭載されているボタンに結びつけられたOnClickプロシージャもちゃんと動作しているように見えます。
このコントロールに限りこれで使える事は使えるのかも。
しかし、WebBrowserコントロールにはこのやり方は通用しない・・・WebBrowserはEnumVerbs()してもウィンドウは生成されない。
どのコントロールでも使える正しい方法はどういうものなのだろうか?
というかそもそもEnumVerbs()して何で生成されるかワケがわからない・・・