如何在Client退出以后使 Out-process Automation Server不关闭? (100分)

  • 主题发起人 主题发起人 sspeak
  • 开始时间 开始时间
S

sspeak

Unregistered / Unconfirmed
GUEST, unregistred user!
一个程序,既可以象普通的GUI Application一样独立运行,
又提供了Automation接口,可以作为一个Automation Server。
如果一个Client通过调用接口启动了Server,那么当Release接口后,Server也自动关闭e
问题是如何使其不关闭?
因为Server需要一些人工界面操作,Client不能老是等在那里。
这个问题应该经常碰到,因为这种GUI/Automation Server的混合程序很有用,如Shell Context Menu Handler 。
我在Microsoft新闻组上提出来,还没有一个好的回复。
最后还是我自己解决了。简单而且正规。
还有谁知道吗?

 
重载 _Release吧.
 
^_^,没人知道?
提示一下:
有两种方法:
1。COM本身提供的方法
2。Delphi提供的方法
 
申请一个变量 v: Ixxxxxx; 应用程序运行时创建,关闭窗口时 v := nil;
实际还是使 COM 的引用技术加“一”。
 
接近了。
公布答案:
1。COM : CoAddRefServerProcess/CoReleaseServerProcess.最简单.
2。Delphi: 处理ComServer.OnLastRelease,Shutdown := false。
 
接受答案了.
 
后退
顶部