Re: ADSI
От: __zve Россия  
Дата: 24.03.05 14:56
Оценка:
Здравствуйте, moon, Вы писали:

M>Нужно написать программное управление(создание сайтов, виртуальных директорий) IIS. Как я понял это можно сделать с помощью ADSI. Только вот все примеры, которые я нашел написаны на скриптах(VBScript, JScript). Каким образом можно переделать эти скрипты в сишный код или просто писать на С, используя ADSI?

M>Помогите, очень нужно!

Вот небольшой пример (VC 7.1):

// ADSITest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <comdef.h>
#include <activeds.h>

_COM_SMARTPTR_TYPEDEF(IADs, IID_IADs);

int _tmain(int argc, _TCHAR* 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...
Пока на собственное сообщение не было ответов, его можно удалить.