Здравствуйте, 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;
}