IOleInPlaceObject::SetObjectRectsで、インプレースオブジェクトの範囲を指定する。
IOleInPlaceObject::SetObjectRects (oleidl.h) - Win32 apps | Microsoft Learn
概要説明
WebBrowserHost.cppで、
こう書く。
![成功はするが](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621063523.png)
成功はするが、
![左上に出来てしまう。](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621063629.png)
左上に出来てしまう。
空キャプションの謎ウィンドウの正体。
デバッガでいろいろ調べていくと、
![渡されるウィンドウハンドルはあるが](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621063829.png)
渡されるウィンドウハンドルはあるが、
![OnCreateが終ってないので、m_hWndはNULLのまま](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621063928.png)
OnCreateが終ってないので、m_hWndはNULLのまま、
![ここも先に呼ばれてしまうし](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621064030.png)
ここも先に呼ばれてしまうし、
![ここも先に呼ばれてしまう](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621064112.png)
ここも先に呼ばれてしまう。
なので、WebBrowserHost.hに、
未確定のウィンドウハンドルm_hWndUndeterminedを追加。
OnCreateで、最初にm_hWndUndeterminedにhwndをセット。
DoVerbのところ、m_hWndUndeterminedに置き換え。
GetWindowも、
GetWindowContextも置き換える。
![スクリプトエラーは出るけど](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621064948.png)
スクリプトエラーは出るけど、
![指定の枠にロードされてる](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230621/20230621065030.png)
指定の枠にロードされてる。
空キャプションの謎ウィンドウもなくなり、1つのウィンドウに統合されてる。