Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

166 lines
4.5 KiB

// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "inetmgrapp.h"
#include "impexp.h"
#include "iisuiobj.h"
extern CInetmgrApp theApp;
inline HRESULT SetBlanket(LPUNKNOWN pIUnk)
{
return CoSetProxyBlanket( pIUnk,
RPC_C_AUTHN_WINNT, // NTLM authentication service
RPC_C_AUTHZ_NONE, // default authorization service...
NULL, // no mutual authentication
RPC_C_AUTHN_LEVEL_DEFAULT, // authentication level
RPC_C_IMP_LEVEL_IMPERSONATE, // impersonation level
NULL, // use current token
EOAC_NONE ); // no special capabilities
}
HRESULT DoNodeExportConfig(BSTR bstrMachineName,BSTR bstrUserName,BSTR bstrUserPassword,BSTR bstrMetabasePath)
{
HRESULT hResult = E_FAIL;
BOOL bPleaseDoCoUninit = FALSE;
IImportExportConfig *pTheObject = NULL;
CLSID clsID;
if (!bstrMetabasePath)
{
return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER);
}
if(FAILED(hResult = CoInitialize(NULL)))
{
return hResult;
}
bPleaseDoCoUninit = TRUE;
if (FAILED(hResult = CLSIDFromProgID(OLESTR("IISUIObj.ImportExportConfig"), &clsID)))
{
goto DoNodeExportConfig_Exit;
}
if (FAILED(hResult = CoCreateInstance(clsID,NULL,CLSCTX_SERVER,__uuidof(IImportExportConfig),(void **)&pTheObject)))
{
goto DoNodeExportConfig_Exit;
}
SetBlanket(pTheObject);
// at this point we were able to instantiate the com object on the server (local or remote)
if (bstrMachineName)
{
hResult = pTheObject->put_MachineName(bstrMachineName);
}
if (bstrUserName)
{
hResult = pTheObject->put_UserName(bstrUserName);
}
if (bstrUserPassword)
{
hResult = pTheObject->put_UserPassword(bstrUserPassword);
}
{
// ensure the dialog gets themed
CThemeContextActivator activator(theApp.GetFusionInitHandle());
// call the export object
if (FAILED(hResult= pTheObject->ExportConfigToFileUI(bstrMetabasePath)))
{
goto DoNodeExportConfig_Exit;
}
}
DoNodeExportConfig_Exit:
if (pTheObject)
{
pTheObject->Release();
pTheObject = NULL;
}
if (bPleaseDoCoUninit)
{
CoUninitialize();
}
return hResult;
}
HRESULT DoNodeImportConfig(BSTR bstrMachineName,BSTR bstrUserName,BSTR bstrUserPassword,BSTR bstrMetabasePath,BSTR bstrKeyType)
{
HRESULT hResult = E_FAIL;
BOOL bPleaseDoCoUninit = FALSE;
IImportExportConfig *pTheObject = NULL;
CLSID clsID;
if (!bstrMetabasePath)
{
return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER);
}
if (!bstrKeyType)
{
return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER);
}
if(FAILED(hResult = CoInitialize(NULL)))
{
return hResult;
}
bPleaseDoCoUninit = TRUE;
if (FAILED(hResult = CLSIDFromProgID(OLESTR("IISUIObj.ImportExportConfig"), &clsID)))
{
goto DoNodeImportConfig_Exit;
}
if (FAILED(hResult = CoCreateInstance(clsID,NULL,CLSCTX_SERVER,__uuidof(IImportExportConfig),(void **)&pTheObject)))
{
goto DoNodeImportConfig_Exit;
}
SetBlanket(pTheObject);
// at this point we were able to instantiate the com object on the server (local or remote)
if (bstrMachineName)
{
hResult = pTheObject->put_MachineName(bstrMachineName);
}
if (bstrUserName)
{
hResult = pTheObject->put_UserName(bstrUserName);
}
if (bstrUserPassword)
{
hResult = pTheObject->put_UserPassword(bstrUserPassword);
}
{
// ensure the dialog gets themed
CThemeContextActivator activator(theApp.GetFusionInitHandle());
// call the import object
if (FAILED(hResult = pTheObject->ImportConfigFromFileUI(bstrMetabasePath,bstrKeyType)))
{
goto DoNodeImportConfig_Exit;
}
}
DoNodeImportConfig_Exit:
if (pTheObject)
{
pTheObject->Release();
pTheObject = NULL;
}
if (bPleaseDoCoUninit)
{
CoUninitialize();
}
return hResult;
}