IIS Constants and Header Files

This topic describes the header files that are required by the programmatic administration interfaces, and any constants defined within them.

When creating applications that configure IIS, you might need to include the following header files or make use of some of the constants that are defined in the header files.

Programmatic administration scripts might also make use of some of the constants defined in these header files, even though the constants will need to be declared within the scripts.

IIS Header Files and Constants

The following header files are provided by IIS.

Iadmw.h

The Iadmw.h header file contains definitions for the members of the IIS Admin Base Object Interfaces. Additionally, the following constant is defined.

#define     ADMINDATA_MAX_NAME_LEN       256

Iiisext.h

The Iiisext.h header file contains definitions for the IIS admin objects and must be included in C++ applications that configure IIS using the IIS ADSI Provider Interfaces because ADSI uses early binding. Also include the IISext_i.c file which contains GUIDs required by the Iiisext.h header file and avoids linker errors. Also include the IIIS.h header file if you need to work with the IISMimeType and IISIPSecurity objects.

IIIS.h

The IIIS.h header file contains definitions for special purpose IIS admin objects that are not included in the Iiisext.h header file, such as the IISMimeType and IISIPSecurity objects. The IIIS.h header file must be included in C++ applications that configure IIS using ADSI because ADSI uses early binding. Also include Iiisext.h and the IISext_i.c file.

IIScnfg.h

The IIScnfg.h header file contains definitions for the friendly identifiers of all of the metabase properties and the friendly bitmask identifiers of property flags. Friendly identifiers and bitmask identifiers are described in Using the Metabase Reference Pages. For example, the following constants can be used when configuring metabase properties using the IIS Admin Base Object Interfaces or the IIS ADSI Provider Interfaces in a C++ application.

#define     IIS_MD_FILE_PROP_BASE        6000
#define     MD_ACCESS_PERM               (IIS_MD_FILE_PROP_BASE+16 )
#define     MD_ACCESS_EXECUTE            0x00000004
#define     MD_ACCESS_MAP_CERT           0x00000080
#define     MD_ACCESS_MASK               0x0000ffff
#define     MD_ACCESS_NEGO_CERT          0x00000020
#define     MD_ACCESS_NO_PHYSICAL_DIR    0x00008000
#define     MD_ACCESS_NO_REMOTE_EXECUTE  0x00002000
#define     MD_ACCESS_NO_REMOTE_READ     0x00001000
#define     MD_ACCESS_NO_REMOTE_SCRIPT   0x00004000
#define     MD_ACCESS_NO_REMOTE_WRITE    0x00000400
#define     MD_ACCESS_READ               0x00000001
#define     MD_ACCESS_REQUIRE_CERT       0x00000040
#define     MD_ACCESS_SCRIPT             0x00000200
#define     MD_ACCESS_SOURCE             0x00000010
#define     MD_ACCESS_SSL                0x00000008
#define     MD_ACCESS_SSL128             0x00000100
#define     MD_ACCESS_WRITE              0x00000002

Additionally, it contains definitions for some constants that are used with metabase properties. For example, the following constants can be used with the ServerState property.

#define     MD_SERVER_STATE_CONTINUING   7
#define     MD_SERVER_STATE_PAUSED       6
#define     MD_SERVER_STATE_PAUSING      5
#define     MD_SERVER_STATE_STARTED      2
#define     MD_SERVER_STATE_STARTING     1
#define     MD_SERVER_STATE_STOPPED      4
#define     MD_SERVER_STATE_STOPPING     3

Iisrsta.h

The Iisrsta.h header file contains definitions for the members of the IIisServiceControl Interface interface.

Iwamreg.h

The Iwamreg.h header file contains definitions for the members of the IIISApplicationAdmin Interface, IWamAdmin Interface, and IWamAdmin2 Interface interfaces. Additionally, the following constants are defined.

#define      APPSTATUS_RUNNING           2
#define      APPSTATUS_STOPPED           3
#define      APPSTATUS_UNLOADED          1 

Ilogobj.Hxx

The Ilogobj.Hxx header file contains definitions for the members of the IIS Custom Logging Module Interfaces interfaces.

Mddefw.h

The Mddefw.h header file contains definitions for macros, metadata types, attributes, and structures that are used when configuring IIS using the IIS Admin Base Object Interfaces. The following constants are defined.

#define     MD_BACKUP_FORCE_BACKUP       0x00000004
#define     MD_BACKUP_HIGHEST_VERSION    0xfffffffe
#define     MD_BACKUP_MAX_LEN            100
#define     MD_BACKUP_MAX_VERSION        9999
#define     MD_BACKUP_NEXT_VERSION       0xffffffff
#define     MD_BACKUP_OVERWRITE          0x00000001
#define     MD_BACKUP_SAVE_FIRST         0x00000002
#define     MD_CHANGE_TYPE_ADD_OBJECT    0x00000002
#define     MD_CHANGE_TYPE_DELETE_DATA   0x00000008
#define     MD_CHANGE_TYPE_DELETE_OBJECT 0x00000001
#define     MD_CHANGE_TYPE_RENAME_OBJECT 0x00000010
#define     MD_CHANGE_TYPE_SET_DATA      0x00000004
#define     MD_DEFAULT_BACKUP_LOCATION   TEXT("MDBackUp")
#define     MD_EXPORT_INHERITED          0x00000001
#define     MD_EXPORT_NODE_ONLY          0x00000002
#define     MD_HISTORY_LATEST            0x00000001
#define     MD_IMPORT_INHERITED          0x00000001
#define     MD_IMPORT_MERGE              0x00000004
#define     MD_IMPORT_NODE_ONLY          0x00000002
#define     MD_MAX_CHANGE_ENTRIES        100
#define     METADATA_INHERIT             0x00000001
#define     METADATA_INSERT_PATH         0x00000040
#define     METADATA_ISINHERITED         0x00000020
#define     METADATA_LOCAL_MACHINE_ONLY  0x00000080
#define     METADATA_MASTER_ROOT_HANDLE  0
#define     METADATA_MAX_NAME_LEN        256
#define     METADATA_NO_ATTRIBUTES       0
#define     METADATA_NON_SECURE_ONLY     0x00000100
#define     METADATA_PARTIAL_PATH        0x00000002
#define     METADATA_PERMISSION_READ     0x00000001
#define     METADATA_PERMISSION_WRITE    0x00000002
#define     METADATA_REFERENCE           0x00000008
#define     METADATA_SECURE              0x00000004
#define     METADATA_VOLATILE            0x00000010

Mdmsg.h

The Mdmsg.h header file contains definitions for error and warning messages that can occur when configuring IIS using the IIS Admin Base Object Interfaces, the IIS ADSI Provider, or the IIS WMI Provider. For definitions of the messages, see IMSAdminBase Errors. The following constants are defined.

#define     MD_ERROR_CANNOT_REMOVE_SECURE_ATTRIBUTE  0x800CC808L
#define     MD_ERROR_DATA_NOT_FOUND                  0x800CC801L
#define     MD_ERROR_IISAO_INVALID_SCHEMA            0x800CC810L
#define     MD_ERROR_INVALID_VERSION                 0x800CC802L
#define     MD_ERROR_NO_SESSION_KEY                  0x800CC81DL
#define     MD_ERROR_NOT_INITIALIZED                 0x800CC800L
#define     MD_ERROR_READ_METABASE_FILE              0x800CC819L
#define     MD_ERROR_SECURE_CHANNEL_FAILURE          0x800CC806L
#define     MD_WARNING_DUP_NAME                      0x000CC804L
#define     MD_WARNING_INVALID_DATA                  0x000CC805L
#define     MD_WARNING_PATH_NOT_FOUND                0x000CC803L
#define     MD_WARNING_PATH_NOT_INSERTED             0x000CC807L
#define     MD_WARNING_SAVE_FAILED                   0x000CC809L

Other Header Files

The following header files are also useful when creating applications or scripts that configure IIS.

AdsErr.h

The AdsErr.h header file contains definitions for ADSI error messages. For more information, see Generic ADSI Error Codes or Code Examples for Working with ADSI Error Messages. This header file is provided by ADSI.

#define    E_ADS_BAD_PARAMETER           _HRESULT_TYPEDEF_(0x80005008L)
#define    E_ADS_BAD_PATHNAME            _HRESULT_TYPEDEF_(0x80005000L)
#define    E_ADS_CANT_CONVERT_DATATYPE   _HRESULT_TYPEDEF_(0x8000500CL)
#define    E_ADS_COLUMN_NOT_SET          _HRESULT_TYPEDEF_(0x80005010L)
#define    E_ADS_INVALID_COMPUTER_OBJECT _HRESULT_TYPEDEF_(0x80005003L)
#define    E_ADS_INVALID_DOMAIN_OBJECT   _HRESULT_TYPEDEF_(0x80005001L)
#define    E_ADS_INVALID_FILTER          _HRESULT_TYPEDEF_(0x80005014L)
#define    E_ADS_INVALID_USER_OBJECT     _HRESULT_TYPEDEF_(0x80005002L)
#define    E_ADS_OBJECT_EXISTS           _HRESULT_TYPEDEF_(0x8000500EL)
#define    E_ADS_OBJECT_UNBOUND          _HRESULT_TYPEDEF_(0x80005009L)
#define    E_ADS_PROPERTY_INVALID        _HRESULT_TYPEDEF_(0x80005007L)
#define    E_ADS_PROPERTY_MODIFIED       _HRESULT_TYPEDEF_(0x8000500BL)
#define    E_ADS_PROPERTY_NOT_FOUND      _HRESULT_TYPEDEF_(0x8000500DL)
#define    E_ADS_PROPERTY_NOT_MODIFIED   _HRESULT_TYPEDEF_(0x8000500AL)
#define    E_ADS_PROPERTY_NOT_SET        _HRESULT_TYPEDEF_(0x80005005L)
#define    E_ADS_PROPERTY_NOT_SUPPORTED  _HRESULT_TYPEDEF_(0x80005006L)
#define    E_ADS_SCHEMA_VIOLATION        _HRESULT_TYPEDEF_(0x8000500FL)
#define    E_ADS_UNKNOWN_OBJECT          _HRESULT_TYPEDEF_(0x80005004L)
#define    S_ADS_ERRORSOCCURRED          _HRESULT_TYPEDEF_(0x00005011L)
#define    S_ADS_NOMORE_COLUMNS          _HRESULT_TYPEDEF_(0x00005013L)
#define    S_ADS_NOMORE_ROWS             _HRESULT_TYPEDEF_(0x00005012L)

Iads.h

The Iads.h header file contains definitions for ADSI constants. For more information, see ADSI Constants. This header file is provided by ADSI.

#define     ADS_ATTR_APPEND              3
#define     ADS_ATTR_CLEAR               1
#define     ADS_ATTR_DELETE              4
#define     ADS_ATTR_UPDATE              2
#define     ADS_EXT_INITCREDENTIALS      1
#define     ADS_EXT_INITIALIZE_COMPLETE  2
#define     ADS_EXT_MAXEXTDISPID         16777215
#define     ADS_EXT_MINEXTDISPID         1

WbemCli.h

The WbenCli header file contains definitions for the Windows WMI interfaces. Include this file when creating applications that use WMI.