Здравствуйте, moon, Вы писали:
M>Здравствуйте, __zve, Вы писали:
___>>Вот небольшой пример (VC 7.1):
M> Жаль, что не на VC 6.0, т.к. именно ее я использую. В VC 7 все по-другому
((
// ADSITestVC6.cpp : Defines the entry point for the console application.
//
Вот это я скомпилировал и запустил на VC 6.0:
BTW: Чтобы собралось надо добавить в Project->Settings->Link->Object Library/Modules
дополнительно две либы: adsiid.lib activeds.lib
#include "stdafx.h"
#include <comdef.h>
#include <activeds.h>
#include <tchar.h>
_COM_SMARTPTR_TYPEDEF(IADs, IID_IADs);
int main(int argc, char* argv[])
{
CoInitialize(0);
try
{
_tprintf(_T("Updating default web site ...\n"));
IADsPtr pObj = NULL;
HRESULT hr = ADsOpenObject(L"
IIS://localhost/W3SVC/1/ROOT",NULL,NULL,0,IID_IADs,(void**)&pObj);
if(FAILED(hr))
{
_tprintf(_T("Error: hr = 0x%x\n"),hr);
}
_tprintf(_T("Getting DefaultDoc ...\n"),hr);
_variant_t defDoc;
hr = pObj->Get(_bstr_t("DefaultDoc"), &defDoc);
if(FAILED(hr))
{
_tprintf(_T("Error: hr = 0x%x\n"),hr);
}
_bstr_t bsDefDoc = (_bstr_t)defDoc;
_tprintf(_T("DefaultDoc = %s\n"),(LPCTSTR)bsDefDoc);
_tprintf(_T("Adding document ...\n"));
bsDefDoc += L",MySuperDocument.htm";
hr = pObj->Put(_bstr_t("DefaultDoc"), _variant_t(bsDefDoc));
if(FAILED(hr))
{
_tprintf(_T("Error: hr = 0x%x\n"),hr);
}
_tprintf(_T("Finishing transaction ...\n"));
hr = pObj->SetInfo();
if(FAILED(hr))
{
_tprintf(_T("Error: hr = 0x%x\n"),hr);
}
}
catch(_com_error& e)
{
_tprintf(_T("Error: hr = 0x%x"),e.Error());
}
CoUninitialize();
return 0;
}