Re[3]: ADSI
От: __zve Россия  
Дата: 24.03.05 15:31
Оценка:
Здравствуйте, 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;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.