COMサーバーでもあるDelphiアプリケーションがあり、アプリケーションにはメインフォームがあります。自動化モード(smAutomation)で開始する場合、親としてメインフォームを作成する必要があります。この質問の範囲外のいくつかの理由により、アプリケーションを作成してからCOMメソッドを実行してメインフォームを再ペアレント化することはできません。つまり、メインフォームが作成された直後に、プロセスの非常に早い段階で再ペアレント化を実行する必要があります。アイデアthxに感謝します。
編集:明確化
// Initialized as as an Application
if COMserver.startmode = smStandalone
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
End
Else
// Initialized as an automation server
if COMserver.startmode = smAutomation
Begin
// How do I set a Parent window handle property - this is called imediately after the COM client initializes the server
// how do I modify this call to create Form1 with a parent?
Application.CreateForm(TForm1, Form1);
End;