IAppHostProperty::Value プロパティ
現在のプロパティの値を取得または設定します。
構文
HRESULT get_Value(
[out,
retval] VARIANT* pVariant
);
HRESULT put_Value(
VARIANT value
);
パラメーター
pVariant
現在のプロパティ値を含む への VARIANT
ポインター。
value
VARIANT
新しいプロパティ値を格納している 。
戻り値
HRESULT
。 有効な値を次の表に示しますが、これ以外にもあります。
値 | 説明 |
---|---|
S_OK | 操作が成功したことを示します。 |
解説
このプロパティを設定する場合、プロパティに渡される新しい値は、現在のプロパティに割り当てられているプロパティ スキーマに対して検証する必要があります。
例
次のコード例では、 要素の 属性を enabled
にfalse
設定して、既定のドキュメントをdefaultDocument
無効にします。
#pragma once
#include <stdio.h>
#include <string.h>
#include <ahadmin.h>
int main()
{
IAppHostWritableAdminManager * pWMgr = NULL;
IAppHostElement * pParentElem = NULL;
IAppHostPropertyCollection * pElemProps = NULL;
IAppHostProperty * pElemProp = NULL;
HRESULT hr = S_OK;
BSTR bstrConfigCommitPath = SysAllocString( L"MACHINE/WEBROOT/APPHOST" );
BSTR bstrSectionName = SysAllocString( L"system.webServer/defaultDocument" );
BSTR bstrPropertyName = SysAllocString( L"enabled" );
VARIANT vtValue;
vtValue.vt = VT_BOOL;
vtValue.boolVal = VARIANT_FALSE;
VARIANT vtPropertyName;
vtPropertyName.vt = VT_BSTR;
vtPropertyName.bstrVal = bstrPropertyName;
// Initialize
hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to initialize\n" );
goto exit;
}
// Create
hr = CoCreateInstance( __uuidof( AppHostWritableAdminManager ), NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IAppHostWritableAdminManager ), (void**) &pWMgr );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to create an IAppHostWritableAdminManager\n" );
goto exit;
}
wprintf_s( L"Setting CommitPath: %s\n", bstrConfigCommitPath );
pWMgr->put_CommitPath( bstrConfigCommitPath );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to set the commit path" );
goto exit;
}
// Get the admin section
wprintf_s( L"Getting section: %s\n", bstrSectionName );
hr = pWMgr->GetAdminSection( bstrSectionName, bstrConfigCommitPath, &pParentElem );
if ( FAILED( hr ) || ( &pParentElem == NULL ) )
{
if ( E_ACCESSDENIED == hr )
{
printf_s( "ERROR: Access to configuration denied.\n" );
printf_s( " Run sample as an administrator.\n" );
}
else
{
printf_s( "ERROR: Unable to get configuration section.\n" );
}
goto exit;
}
// Get the property collection
printf_s( "Getting property collection\n" );
hr = pParentElem->get_Properties( &pElemProps );
if ( FAILED ( hr ) || ( &pElemProps == NULL ) )
{
wprintf_s( L"ERROR: Unable to access attributes %s\n", bstrSectionName );
goto exit;
}
// Get the property instance
wprintf_s ( L"Getting property: %s\n", bstrPropertyName );
hr = pElemProps->get_Item( vtPropertyName, &pElemProp );
if ( FAILED( hr ) || ( pElemProp == NULL ) )
{
wprintf_s( L"ERROR: Unable to access attribute: %s\n", bstrPropertyName );
goto exit;
}
// Set the property value
wprintf_s( L"Setting property: %s to %s\n", bstrPropertyName,
( vtValue.boolVal == VARIANT_TRUE ? L"true" : L"false" ) );
hr = pElemProp->put_Value( vtValue );
if ( FAILED( hr ) )
{
wprintf_s( L"ERROR: Unable to set attribute value: %s\n", bstrPropertyName );
goto exit;
}
// Commit the changes to the configuration system
hr = pWMgr->CommitChanges();
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to commit the changes to the configuration system" );
}
exit:
// Exiting / Unwinding
if ( pElemProp != NULL )
{
pElemProp->Release();
pElemProp = NULL;
}
if ( pElemProps != NULL )
{
pElemProps->Release();
pElemProps = NULL;
}
if ( pParentElem != NULL )
{
pParentElem->Release();
pParentElem = NULL;
}
if ( pWMgr != NULL )
{
pWMgr->Release();
pWMgr = NULL;
}
SysFreeString( bstrPropertyName );
SysFreeString( bstrConfigCommitPath );
SysFreeString( bstrSectionName );
// Uninitialize
CoUninitialize();
return 0;
};
要件
Type | 説明 |
---|---|
Client | - Windows Vista 上の IIS 7.0 - Windows 7 上の IIS 7.5 - Windows 8 の IIS 8.0 - Windows 10の IIS 10.0 |
サーバー | - Windows Server 2008 の IIS 7.0 - Windows Server 2008 R2 上の IIS 7.5 - Windows Server 2012 上の IIS 8.0 - Windows Server 2012 R2 上の IIS 8.5 - Windows Server 2016上の IIS 10.0 |
製品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
Header | Ahadmin.h |