Delphi .exe COM服务器启动奇怪

时间:2016-03-06 17:14:07

标签: delphi com

我有一个用Delphi Seattle编写的Win32 .exe,它实现了一个函数的COM接口 如果我从程序本身调用CreateOleObject(),我会对服务器的行为方式感到困惑 实例化模型设置为ciSingleInstance所以我希望在每次调用时创建一个新实例(假设前面的实例仍在运行)。

实际发生的是第一次调用不会创建新实例但第二次调用不会 如果第一个调用运行完成,则第二个实例再次创建一个新实例,即使该程序应该恢复到其默认状态。

我如何

a)在第一次通话时强制创建第二个实例,或者 b)将程序返回到一个真正的默认状态,以便多次运行完成不会启动第二个实例。

1 个答案:

答案 0 :(得分:0)

_populateCurrentUser: function() { var user_id = this.get('session.data.user_id'); var user_email = this.get('session.data.user_email'); var _this = this; return this.store.find('user', user_id).then(function(user){ _this.get('currentUser').set('content', user); // Below is for backward-compatibility _this.get('session').set('currentUser', user); _this.get('session').set('user_id', user_id); _this.get('session').set('user_email', user_email); user; }); } sessionAuthenticated: function(){ this._populateCurrentUser(); this._super(); } beforeModel: function() { if (this.get('session.isAuthenticated')) { return this._populateCurrentUser(); } } 作为REGCLS_SINGLEUSE传递给CoRegisterClassObject的内部调用,这可能会导致此类不受欢迎的行为。