求助:各位大哥,俩帮我看看这几个 com 问题,好吗?谢谢4!
请教:
问题一:
接口包括很多函数,那么初始化接口,
就初始化了接口里的所有函数,是不?
问题二:
void MyTest(void)
{
::CoInitialize( NULL );//初始化句柄
HRESULT hr; //返回值
// {000209FF-0000-0000-C000-000000000046} = word.application.9
CLSID clsid = {0x209ff,0,0,{0xc0,0,0,0,0,0,0,0x46}}; //这个是什么?
LPOLESTR lpwProgID = NULL;//字符串(空间会自己分配)
hr = ::ProgIDFromCLSID( clsid, &lpwProgID ); //得到 ProgID
if ( SUCCEEDED(hr) )
{
::MessageBoxW( NULL, lpwProgID, L"ProgID", MB_OK );
IMalloc * pMalloc = NULL; //这个是什么?
hr = ::CoGetMalloc( 1, &pMalloc ); // 取得 IMalloc
if ( SUCCEEDED(hr) )
{
pMalloc->Free( lpwProgID ); // 释放ProgID内存
pMalloc->Release(); // 释放IMalloc
}
}
::CoUninitialize();
}
这里
1:
IMalloc * pMalloc = NULL; //这个是什么?
hr = ::CoGetMalloc( 1, &pMalloc ); // 取得 IMalloc
if ( SUCCEEDED(hr) )
{
pMalloc->Free( lpwProgID ); // 释放ProgID内存
pMalloc->Release(); // 释放IMalloc
}
这里为什么还要写段程序呢?
目的是不是为了释放 lpwProgID 内存?
2:
lpwProgID 内存的内存不会自动释放吗?
3:
pMalloc 是内存管理接口,是不?
是管理所有的接口的内存?
问题三:
我用这样的步骤新建了一个工程:
新建一个 vc++ 的 ATL 项目。示例程序叫 Simple2,并选择DLL方式
可是在 Simple2 文件夹里有两个 *.vcproj
分别是: Simple2.vcproj 和 Simple2PS.vcproj
到底是哪个呢?
如果我按 75 编译,编译是 Simple2.vcproj 还是 Simple2PS.vcproj?
编译后会产生什么特殊的文件(像一般应用程序,就产生一个有用的 *.exe)?
谢谢!