我必须从VBScript
页面的ASP
获取下面给出的命令界面和状态界面。 COM将部署在Windows CE设备中
Set polyColdObj=CreateObject("PolyCold.Main")
Set statusObj = polyColdObj.StatusInterface()
Set commandObj = polyColdObj.CommandInterface()
我将使用Atl开发COM对象。我的怀疑是
答案 0 :(得分:2)
应该签名的是什么 StatusInterface和CommandInterface 在ATL COM?
默认情况下,ATL方法将返回HRESULT值。为了实现您的目标,您可以使用ATL向导创建不带参数的方法。然后,您可以手动修改IDL文件以及相应的实现,以便您的方法返回CommandInterface。使用这种方法,您的IDL文件将如下所示:
[id(1)] CommandInterface* GetCommandInterface();
ATL类的方法声明将是:
CommandInterface* GetCommandInterface();
另一种选择可能是使用一个CommandInterface **类型的输出参数。使用ATL向导进行的快速测试表明,您的IDL文件将如下所示:
[id(1)] HRESULT StatusInterface([out] CommandInterface** outStatusInterface);
我应该在上面调用AddRef()吗? StatusInterface和CommandInterface 在将对象返回之前 自动化客户端(VBScript)?
我会说是的,因为当你的局部变量超出范围时,VBScript / ASP应该调用Release()
。
我应该每次都创建对象吗? 调用StatusInterface或何时调用 'PolyCold.Main'对象是否已创建?
这个取决于你。只有您了解设计的细节和需求。
这是给予的标准方式吗? StatusInterface和的名称 CommandInterface?
如果这些“元素”应该是接口类型,那么我会说不。通常,接口以大写字母I作为首字母命名。我会使用IStatus和ICommand作为例子。可能有更多的信息说明什么样的命令和状态,但这是有争议的。