我知道"WTL建立在ATL之上",但从实际角度来看这是什么意思? 在功能方面,ATL是WTL的子集吗? (即:ATL中的所有功能是否也存在于WTL中?) 我注意到维基百科表示ATL的开发状态是"current",而WTL最近的版本发布时间是2009年中期。这是否意味着如果我想使用Glass/...
也许有人可以为我解释一下: bool Func1(LPCTSTR sData) { if (sData) { ... } } 我这样调用了该函数: CString str = _T(""); Func1((str.IsEmpty() ? NULL : str)); 为什么函...
我想知道ComPtr和CComPtr之间的确切区别,以及ComPtr::As()是否相当于CComPtr::QueryInterface()?我已经阅读了两者的文档,但是没有清晰的答案...
使用ATL(VS2008),如何枚举给定IDispatch接口(IDispatch*)上可用的方法?我需要搜索具有特定名称的方法,并一旦获得DISPID,就调用该方法(我知道方法需要哪些参数)。理想情况下,我想使用智能COM指针(CComPtr<>)来完成此操作。 这是否可能?
在使用COM时,我通常依赖于ATL智能指针,例如ATL::CComPtr和ATL::CComBSTR,用于资源管理。但我调用的一些方法使用输出参数来返回指向分配存储的指针,我必须释放它们。例如:WCHAR *pszName = nullptr; if (SUCCEEDED(pShellItem...
我有一个COM函数,应该通过LPSAFEARRAY*输出参数返回一个SafeArray。 该函数使用ATL的CComSafeArray模板类创建SafeArray。 我的天真实现使用CComSafeArray<T>::Detach()来将所有权从局部变量移动到输出参数:void f...
"ATL简单对象"向导不提供一种指定新类派生自现有coclass及其接口的方法。在Visual Studio 2008中,如何创建一个新的ATL COM类,使其派生自现有类(即Base实现了IBase,我想创建一个新的Derived类派生自Base,并实现IDerived,其中IDerived...
右单引号(U+2019)与撇号(U+0027)有什么区别? 这两个字符有何不同? 我遇到了这样的问题:我使用CAtlString从资源文件中加载字符串,在某些Windows安装中,当尝试加载包含U+2019的字符串时,LoadString会失败,但在其他一些Windows安装中它可以正常工...
在MSVC中创建ATL项目似乎会创建两个项目;后者的名称与前者相同,但名称末尾附加了“PS”。第二个项目的目的是什么,我如何确定是否需要它?
我有些力不从心,希望能得到一些关于如何处理的建议。 基本上我想要做的是在我的C++应用程序中渲染和控制Silverlight。我想要的是像这样的东西: class silverlight_host { public: // Prio 1 silverlight...