请教:问题一:
接口包括很多函数,那么初始化接口,
就初始化了接口里的所有函数,是不?问题二:
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)?谢谢!