Introduction - Microsoft



[MC-IISA]: Internet Information Services (IIS) Application Host COM ProtocolIntellectual Property Rights Notice for Open Specifications DocumentationTechnical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages, standards as well as overviews of the interaction among each of these technologies. Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the technologies described in the Open Specifications and may distribute portions of it in your implementations using these technologies or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL's, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications. No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. Patents. Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, a given Open Specification may be covered by Microsoft Open Specification Promise or the Community Promise. If you would prefer a written license, or if the technologies described in the Open Specifications are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting iplg@. Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit trademarks. Fictitious Names. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise. Tools. The Open Specifications do not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them. Certain Open Specifications are intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it.Revision SummaryDateRevision HistoryRevision ClassComments4/3/20070.1MajorInitial Availability7/3/20070.2MinorClarified the meaning of the technical content.8/10/20070.2.1EditorialChanged language and formatting in the technical content.9/28/20070.3MinorClarified the meaning of the technical content.10/23/20070.4MinorClarified the meaning of the technical content.11/30/20070.5MinorClarified the meaning of the technical content.1/25/20080.5.1EditorialChanged language and formatting in the technical content.3/14/20081.0MajorUpdated and revised the technical content.5/16/20081.0.1EditorialChanged language and formatting in the technical content.6/20/20082.0MajorUpdated and revised the technical content.7/25/20082.0.1EditorialChanged language and formatting in the technical content.8/29/20082.0.2EditorialChanged language and formatting in the technical content.10/24/20082.0.3EditorialChanged language and formatting in the technical content.12/5/20082.1MinorClarified the meaning of the technical content.1/16/20092.1.1EditorialChanged language and formatting in the technical content.2/27/20092.1.2EditorialChanged language and formatting in the technical content.4/10/20092.1.3EditorialChanged language and formatting in the technical content.5/22/20092.1.4EditorialChanged language and formatting in the technical content.7/2/20092.2MinorClarified the meaning of the technical content.8/14/20092.2.1EditorialChanged language and formatting in the technical content.9/25/20092.3MinorClarified the meaning of the technical content.11/6/20092.3.1EditorialChanged language and formatting in the technical content.12/18/20092.3.2EditorialChanged language and formatting in the technical content.1/29/20102.3.3EditorialChanged language and formatting in the technical content.3/12/20102.3.4EditorialChanged language and formatting in the technical content.4/23/20103.0MajorUpdated and revised the technical content.6/4/20104.0MajorUpdated and revised the technical content.7/16/20105.0MajorUpdated and revised the technical content.8/27/20105.0NoneNo changes to the meaning, language, or formatting of the technical content.10/8/20106.0MajorUpdated and revised the technical content.11/19/20106.0NoneNo changes to the meaning, language, or formatting of the technical content.1/7/20116.0NoneNo changes to the meaning, language, or formatting of the technical content.2/11/20116.0NoneNo changes to the meaning, language, or formatting of the technical content.3/25/20116.0NoneNo changes to the meaning, language, or formatting of the technical content.5/6/20116.0NoneNo changes to the meaning, language, or formatting of the technical content.6/17/20116.1MinorClarified the meaning of the technical content.9/23/20116.1NoneNo changes to the meaning, language, or formatting of the technical content.12/16/20117.0MajorUpdated and revised the technical content.3/30/20127.0NoneNo changes to the meaning, language, or formatting of the technical content.7/12/20127.0NoneNo changes to the meaning, language, or formatting of the technical content.10/25/20128.0MajorUpdated and revised the technical content.1/31/20138.0NoneNo changes to the meaning, language, or formatting of the technical content.8/8/20139.0MajorUpdated and revised the technical content.11/14/20139.0NoneNo changes to the meaning, language, or formatting of the technical content.2/13/20149.0NoneNo changes to the meaning, language, or formatting of the technical content.5/15/20149.0NoneNo changes to the meaning, language, or formatting of the technical content.6/30/201510.0MajorSignificantly changed the technical content.Table of ContentsTOC \o "1-9" \h \z1Introduction PAGEREF _Toc423366840 \h 91.1Glossary PAGEREF _Toc423366841 \h 91.2References PAGEREF _Toc423366842 \h 101.2.1Normative References PAGEREF _Toc423366843 \h 101.2.2Informative References PAGEREF _Toc423366844 \h 101.3Overview PAGEREF _Toc423366845 \h 101.4Relationship to Other Protocols PAGEREF _Toc423366846 \h 101.5Prerequisites/Preconditions PAGEREF _Toc423366847 \h 101.6Applicability Statement PAGEREF _Toc423366848 \h 101.7Versioning and Capability Negotiation PAGEREF _Toc423366849 \h 111.8Vendor-Extensible Fields PAGEREF _Toc423366850 \h 111.9Standards Assignments PAGEREF _Toc423366851 \h 112Messages PAGEREF _Toc423366852 \h 132.1Transport PAGEREF _Toc423366853 \h 132.2Common Data Types PAGEREF _Toc423366854 \h 133Protocol Details PAGEREF _Toc423366855 \h 143.1IIS Application Host Administration Server Details PAGEREF _Toc423366856 \h 143.1.1Abstract Data Model PAGEREF _Toc423366857 \h 143.1.1.1Configuration Store PAGEREF _Toc423366858 \h 143.1.1.2Configuration Path PAGEREF _Toc423366859 \h 143.1.1.3Configuration Settings PAGEREF _Toc423366860 \h 143.1.1.3.1Configuration Properties PAGEREF _Toc423366861 \h 153.1.1.3.2Configuration Elements PAGEREF _Toc423366862 \h 153.1.1.3.3Configuration Collections PAGEREF _Toc423366863 \h 153.1.1.3.4Configuration Sections and Section Definition and Section Groups PAGEREF _Toc423366864 \h 163.1.1.3.5Configuration Schema PAGEREF _Toc423366865 \h 163.1.1.3.6Inheritance and Merging of Configuration Settings PAGEREF _Toc423366866 \h 163.1.1.3.7Programmatic Configuration Settings PAGEREF _Toc423366867 \h 173.1.2Timers PAGEREF _Toc423366868 \h 173.1.3Initialization PAGEREF _Toc423366869 \h 173.1.4Message Processing Events and Sequencing Rules PAGEREF _Toc423366870 \h 173.1.4.1IAppHostAdminManager PAGEREF _Toc423366871 \h 173.1.4.1.1GetAdminSection (Opnum 3) PAGEREF _Toc423366872 \h 183.1.4.1.2GetMetadata (Opnum 4) PAGEREF _Toc423366873 \h 193.1.4.1.3SetMetadata (Opnum 5) PAGEREF _Toc423366874 \h 213.1.4.1.4ConfigManager (Opnum 6) PAGEREF _Toc423366875 \h 233.1.4.2IAppHostChangeHandler PAGEREF _Toc423366876 \h 233.1.4.2.1OnSectionChanges (Opnum 3) PAGEREF _Toc423366877 \h 243.1.4.3IAppHostChildElementCollection PAGEREF _Toc423366878 \h 243.1.4.3.1Count (Opnum 3) PAGEREF _Toc423366879 \h 243.1.4.3.2Item (Opnum 4) PAGEREF _Toc423366880 \h 253.1.4.4IAppHostCollectionSchema PAGEREF _Toc423366881 \h 263.1.4.4.1AddElementNames (Opnum 3) PAGEREF _Toc423366882 \h 263.1.4.4.2GetAddElementSchema (Opnum 4) PAGEREF _Toc423366883 \h 273.1.4.4.3RemoveElementSchema (Opnum 5) PAGEREF _Toc423366884 \h 283.1.4.4.4ClearElementSchema (Opnum 6) PAGEREF _Toc423366885 \h 283.1.4.4.5IsMergeAppend (Opnum 7) PAGEREF _Toc423366886 \h 293.1.4.4.6GetMetadata (Opnum 8) PAGEREF _Toc423366887 \h 293.1.4.4.7DoesAllowDuplicates (Opnum 9) PAGEREF _Toc423366888 \h 293.1.4.5IAppHostConfigException PAGEREF _Toc423366889 \h 303.1.4.5.1LineNumber (Opnum 3) PAGEREF _Toc423366890 \h 303.1.4.5.2FileName (Opnum 4) PAGEREF _Toc423366891 \h 313.1.4.5.3ConfigPath (Opnum 5) PAGEREF _Toc423366892 \h 313.1.4.5.4ErrorLine (Opnum 6) PAGEREF _Toc423366893 \h 323.1.4.5.5PreErrorLine (Opnum 7) PAGEREF _Toc423366894 \h 323.1.4.5.6PostErrorLine (Opnum 8) PAGEREF _Toc423366895 \h 333.1.4.5.7ErrorString (Opnum 9) PAGEREF _Toc423366896 \h 343.1.4.6IAppHostConfigFile PAGEREF _Toc423366897 \h 343.1.4.6.1ConfigPath (Opnum 3) PAGEREF _Toc423366898 \h 353.1.4.6.2FilePath (Opnum 4) PAGEREF _Toc423366899 \h 353.1.4.6.3Locations (Opnum 5) PAGEREF _Toc423366900 \h 363.1.4.6.4GetAdminSection (Opnum 6) PAGEREF _Toc423366901 \h 363.1.4.6.5GetMetadata (Opnum 7) PAGEREF _Toc423366902 \h 373.1.4.6.6SetMetadata (Opnum 8) PAGEREF _Toc423366903 \h 383.1.4.6.7ClearInvalidSections (Opnum 9) PAGEREF _Toc423366904 \h 383.1.4.6.8RootSectionGroup (Opnum 10) PAGEREF _Toc423366905 \h 383.1.4.7IAppHostConfigLocation PAGEREF _Toc423366906 \h 393.1.4.7.1Path (Opnum 3) PAGEREF _Toc423366907 \h 403.1.4.7.2Count (Opnum 4) PAGEREF _Toc423366908 \h 403.1.4.7.3Item (Opnum 5) PAGEREF _Toc423366909 \h 413.1.4.7.4AddConfigSection (Opnum 6) PAGEREF _Toc423366910 \h 413.1.4.7.5DeleteConfigSection (Opnum 7) PAGEREF _Toc423366911 \h 423.1.4.8IAppHostConfigLocationCollection PAGEREF _Toc423366912 \h 433.1.4.8.1Count (Opnum 3) PAGEREF _Toc423366913 \h 433.1.4.8.2Item (Opnum 4) PAGEREF _Toc423366914 \h 443.1.4.8.3AddLocation (Opnum 5) PAGEREF _Toc423366915 \h 443.1.4.8.4DeleteLocation (Opnum 6) PAGEREF _Toc423366916 \h 453.1.4.9IAppHostConfigManager PAGEREF _Toc423366917 \h 463.1.4.9.1GetConfigFile (Opnum 3) PAGEREF _Toc423366918 \h 463.1.4.9.2GetUniqueConfigPath (Opnum 4) PAGEREF _Toc423366919 \h 473.1.4.10IAppHostConstantValue PAGEREF _Toc423366920 \h 483.1.4.10.1Name (Opnum 3) PAGEREF _Toc423366921 \h 483.1.4.10.2Value (Opnum 4) PAGEREF _Toc423366922 \h 493.1.4.11IAppHostConstantValueCollection PAGEREF _Toc423366923 \h 493.1.4.11.1Count (Opnum 3) PAGEREF _Toc423366924 \h 493.1.4.11.2Item (Opnum 4) PAGEREF _Toc423366925 \h 503.1.4.12IAppHostElement PAGEREF _Toc423366926 \h 513.1.4.12.1Name (Opnum 3) PAGEREF _Toc423366927 \h 513.1.4.12.2Collection (Opnum 4) PAGEREF _Toc423366928 \h 523.1.4.12.3Properties (Opnum 5) PAGEREF _Toc423366929 \h 523.1.4.12.4ChildElements (Opnum 6) PAGEREF _Toc423366930 \h 533.1.4.12.5GetMetadata (Opnum 7) PAGEREF _Toc423366931 \h 543.1.4.12.6SetMetadata (Opnum 8) PAGEREF _Toc423366932 \h 563.1.4.12.7Schema (Opnum 9) PAGEREF _Toc423366933 \h 573.1.4.12.8GetElementByName (Opnum 10) PAGEREF _Toc423366934 \h 583.1.4.12.9GetPropertyByName (Opnum 11) PAGEREF _Toc423366935 \h 583.1.4.12.10Clear (Opnum 12) PAGEREF _Toc423366936 \h 593.1.4.12.11Methods (Opnum 13) PAGEREF _Toc423366937 \h 593.1.4.13IAppHostElementCollection PAGEREF _Toc423366938 \h 603.1.4.13.1Count (Opnum 3) PAGEREF _Toc423366939 \h 613.1.4.13.2Item (Opnum 4) PAGEREF _Toc423366940 \h 613.1.4.13.3AddElement (Opnum 5) PAGEREF _Toc423366941 \h 623.1.4.13.4DeleteElement (Opnum 6) PAGEREF _Toc423366942 \h 623.1.4.13.5Clear (Opnum 7) PAGEREF _Toc423366943 \h 633.1.4.13.6CreateNewElement (Opnum 8) PAGEREF _Toc423366944 \h 643.1.4.13.7Schema (Opnum 9) PAGEREF _Toc423366945 \h 643.1.4.14IAppHostElementSchema PAGEREF _Toc423366946 \h 653.1.4.14.1Name (Opnum 3) PAGEREF _Toc423366947 \h 653.1.4.14.2DoesAllowUnschematizedProperties (Opnum 4) PAGEREF _Toc423366948 \h 663.1.4.14.3GetMetadata (Opnum 5) PAGEREF _Toc423366949 \h 663.1.4.14.4CollectionSchema (Opnum 6) PAGEREF _Toc423366950 \h 673.1.4.14.5ChildElementSchemas (Opnum 7) PAGEREF _Toc423366951 \h 683.1.4.14.6PropertySchemas (Opnum 8) PAGEREF _Toc423366952 \h 683.1.4.14.7IsCollectionDefault (Opnum 9) PAGEREF _Toc423366953 \h 693.1.4.15IAppHostElementSchemaCollection PAGEREF _Toc423366954 \h 693.1.4.15.1Count (Opnum 3) PAGEREF _Toc423366955 \h 703.1.4.15.2Item (Opnum 4) PAGEREF _Toc423366956 \h 703.1.4.16IAppHostMappingExtension PAGEREF _Toc423366957 \h 713.1.4.16.1GetSiteNameFromSiteID (Opnum 3) PAGEREF _Toc423366958 \h 713.1.4.16.2GetSiteIDFromSiteName (Opnum 4) PAGEREF _Toc423366959 \h 723.1.4.16.3GetSiteElementFromSiteID (Opnum 5) PAGEREF _Toc423366960 \h 733.1.4.16.4MapPath (Opnum 6) PAGEREF _Toc423366961 \h 733.1.4.17IAppHostMethod PAGEREF _Toc423366962 \h 743.1.4.17.1Name (Opnum 3) PAGEREF _Toc423366963 \h 753.1.4.17.2Schema (Opnum 4) PAGEREF _Toc423366964 \h 753.1.4.17.3CreateInstance (Opnum 5) PAGEREF _Toc423366965 \h 763.1.4.18IAppHostMethodCollection PAGEREF _Toc423366966 \h 763.1.4.18.1Count (Opnum 3) PAGEREF _Toc423366967 \h 763.1.4.18.2Item (Opnum 4) PAGEREF _Toc423366968 \h 773.1.4.19IAppHostMethodInstance PAGEREF _Toc423366969 \h 783.1.4.19.1Input (Opnum 3) PAGEREF _Toc423366970 \h 783.1.4.19.2Output (Opnum 4) PAGEREF _Toc423366971 \h 783.1.4.19.3Execute (Opnum 5) PAGEREF _Toc423366972 \h 793.1.4.19.4GetMetaData (Opnum 6) PAGEREF _Toc423366973 \h 793.1.4.19.5SetMetadata (Opnum 7) PAGEREF _Toc423366974 \h 803.1.4.20IAppHostMethodSchema PAGEREF _Toc423366975 \h 813.1.4.20.1Name (Opnum 3) PAGEREF _Toc423366976 \h 813.1.4.20.2InputSchema (Opnum 4) PAGEREF _Toc423366977 \h 823.1.4.20.3OutputSchema (Opnum 5) PAGEREF _Toc423366978 \h 823.1.4.20.4GetMetadata (Opnum 6) PAGEREF _Toc423366979 \h 823.1.4.21IAppHostPathMapper PAGEREF _Toc423366980 \h 833.1.4.21.1MapPath (Opnum 3) PAGEREF _Toc423366981 \h 833.1.4.22IAppHostProperty PAGEREF _Toc423366982 \h 843.1.4.22.1Name (Opnum 3) PAGEREF _Toc423366983 \h 853.1.4.22.2Value (Get) (Opnum 4) PAGEREF _Toc423366984 \h 853.1.4.22.3Value (Set) (Opnum 5) PAGEREF _Toc423366985 \h 863.1.4.22.4Clear (Opnum 6) PAGEREF _Toc423366986 \h 863.1.4.22.5StringValue (Opnum 7) PAGEREF _Toc423366987 \h 873.1.4.22.6Exception (Opnum 8) PAGEREF _Toc423366988 \h 873.1.4.22.7GetMetadata (Opnum 9) PAGEREF _Toc423366989 \h 883.1.4.22.8SetMetadata (Opnum 10) PAGEREF _Toc423366990 \h 893.1.4.22.9Schema (Opnum 11) PAGEREF _Toc423366991 \h 903.1.4.23IAppHostPropertyCollection PAGEREF _Toc423366992 \h 903.1.4.23.1Count (Opnum 3) PAGEREF _Toc423366993 \h 913.1.4.23.2Item (Opnum 4) PAGEREF _Toc423366994 \h 913.1.4.24IAppHostPropertyException PAGEREF _Toc423366995 \h 923.1.4.24.1InvalidValue (Opnum 10) PAGEREF _Toc423366996 \h 923.1.4.24.2ValidationFailureReason (Opnum 11) PAGEREF _Toc423366997 \h 933.1.4.24.3ValidationFailureParameters (Opnum 12) PAGEREF _Toc423366998 \h 933.1.4.25IAppHostPropertySchema PAGEREF _Toc423366999 \h 943.1.4.25.1Name (Opnum 3) PAGEREF _Toc423367000 \h 943.1.4.25.2Type (Opnum 4) PAGEREF _Toc423367001 \h 953.1.4.25.3DefaultValue (Opnum 5) PAGEREF _Toc423367002 \h 953.1.4.25.4IsRequired (Opnum 6) PAGEREF _Toc423367003 \h 963.1.4.25.5IsUniqueKey (Opnum 7) PAGEREF _Toc423367004 \h 963.1.4.25.6IsCombinedKey (Opnum 8) PAGEREF _Toc423367005 \h 973.1.4.25.7IsExpanded (Opnum 9) PAGEREF _Toc423367006 \h 973.1.4.25.8ValidationType (Opnum 10) PAGEREF _Toc423367007 \h 983.1.4.25.9ValidationParameter (Opnum 11) PAGEREF _Toc423367008 \h 983.1.4.25.10GetMetaData (Opnum 12) PAGEREF _Toc423367009 \h 993.1.4.25.11IsCaseSensitive (Opnum 13) PAGEREF _Toc423367010 \h 1003.1.4.25.12PossibleValues (Opnum 14) PAGEREF _Toc423367011 \h 1003.1.4.25.13DoesAllowInfinite (Opnum 15) PAGEREF _Toc423367012 \h 1013.1.4.25.14IsEncrypted (Opnum 16) PAGEREF _Toc423367013 \h 1013.1.4.25.15TimeSpanFormat (Opnum 17) PAGEREF _Toc423367014 \h 1023.1.4.26IAppHostPropertySchemaCollection PAGEREF _Toc423367015 \h 1023.1.4.26.1Count (Opnum 3) PAGEREF _Toc423367016 \h 1033.1.4.26.2Item (Opnum 4) PAGEREF _Toc423367017 \h 1033.1.4.27IAppHostSectionDefinition PAGEREF _Toc423367018 \h 1043.1.4.27.1Name (Opnum 3) PAGEREF _Toc423367019 \h 1043.1.4.27.2Type (Get) (Opnum 4) PAGEREF _Toc423367020 \h 1053.1.4.27.3Type (Set) (Opnum 5) PAGEREF _Toc423367021 \h 1053.1.4.27.4OverrideModeDefault (Get) (Opnum 6) PAGEREF _Toc423367022 \h 1063.1.4.27.5OverrideModeDefault (Set) (Opnum 7) PAGEREF _Toc423367023 \h 1073.1.4.27.6AllowDefinition (Get) (Opnum 8) PAGEREF _Toc423367024 \h 1073.1.4.27.7AllowDefinition (Set) (Opnum 9) PAGEREF _Toc423367025 \h 1083.1.4.27.8AllowLocation (Get) (Opnum 10) PAGEREF _Toc423367026 \h 1083.1.4.27.9AllowLocation (Set) (Opnum 11) PAGEREF _Toc423367027 \h 1093.1.4.28IAppHostSectionDefinitionCollection PAGEREF _Toc423367028 \h 1093.1.4.28.1Count (Opnum 3) PAGEREF _Toc423367029 \h 1103.1.4.28.2Item (Opnum 4) PAGEREF _Toc423367030 \h 1103.1.4.28.3AddSection (Opnum 5) PAGEREF _Toc423367031 \h 1113.1.4.28.4DeleteSection (Opnum 6) PAGEREF _Toc423367032 \h 1113.1.4.29IAppHostSectionGroup PAGEREF _Toc423367033 \h 1123.1.4.29.1Count (Opnum 3) PAGEREF _Toc423367034 \h 1123.1.4.29.2Item (Opnum 4) PAGEREF _Toc423367035 \h 1133.1.4.29.3Sections (Opnum 5) PAGEREF _Toc423367036 \h 1143.1.4.29.4AddSectionGroup (Opnum 6) PAGEREF _Toc423367037 \h 1143.1.4.29.5DeleteSectionGroup (Opnum 7) PAGEREF _Toc423367038 \h 1153.1.4.29.6Name (Opnum 8) PAGEREF _Toc423367039 \h 1153.1.4.29.7Type (Get) (Opnum 9) PAGEREF _Toc423367040 \h 1163.1.4.29.8Type (Set) (Opnum 10) PAGEREF _Toc423367041 \h 1163.1.4.30IAppHostWritableAdminManager PAGEREF _Toc423367042 \h 1173.1.4.30.1CommitChanges (Opnum 7) PAGEREF _Toc423367043 \h 1173.1.4.30.2CommitPath (Get) (Opnum 8) PAGEREF _Toc423367044 \h 1183.1.4.30.3CommitPath (Set) (Opnum 9) PAGEREF _Toc423367045 \h 1183.1.5Timer Events PAGEREF _Toc423367046 \h 1193.1.6Other Local Events PAGEREF _Toc423367047 \h 1194Protocol Examples PAGEREF _Toc423367048 \h 1204.1Create an AppHostAdminManager Locally PAGEREF _Toc423367049 \h 1204.2Get Metadata: Get the overrideMode of a defaultDocument Section PAGEREF _Toc423367050 \h 1204.3Set Metadata: Set the overrideMode of the defaultDocument Section PAGEREF _Toc423367051 \h 1204.4Create a New Configuration Section Entry in the configSections Section PAGEREF _Toc423367052 \h 1204.5Get a Section for Read Access: The defaultDocument Section PAGEREF _Toc423367053 \h 1214.6Get a Property: Get the Enabled Property of the defaultDocument Section PAGEREF _Toc423367054 \h 1214.7Get a Section: Get the anonymousAuthentication Section PAGEREF _Toc423367055 \h 1214.8List the Entries of a Collection PAGEREF _Toc423367056 \h 1214.9Remove an Entry of a Collection PAGEREF _Toc423367057 \h 1214.10Edit the Configuration of APPHOST in a Location Tag PAGEREF _Toc423367058 \h 1224.11Read Schema Information: Determine If IsMergeAppend Is Set in the defaultDocuments Section PAGEREF _Toc423367059 \h 1224.12Get a Section for Write: Get the defaultDocument Section and Toggle the Enabled Attribute PAGEREF _Toc423367060 \h 1224.13Write into a Collection: Clear the Contents of the defaultDocument Section for Site1 PAGEREF _Toc423367061 \h 1224.14Write into a Collection: Add an Entry for the defaultDocument Section for Site1 as a Location Tag PAGEREF _Toc423367062 \h 1235Security PAGEREF _Toc423367063 \h 1245.1Security Considerations for Implementers PAGEREF _Toc423367064 \h 1245.2Index of Security Parameters PAGEREF _Toc423367065 \h 1246Appendix A: Full IDL PAGEREF _Toc423367066 \h 1257Appendix B: Product Behavior PAGEREF _Toc423367067 \h 1398Change Tracking PAGEREF _Toc423367068 \h 1409Index PAGEREF _Toc423367069 \h 142Introduction XE "Introduction" XE "Introduction"This document specifies the Internet Information Services (IIS) Application Host COM Protocol. This protocol is a client-to-server protocol that enables remote read/write access to server data. The server data can be used to define administration, configuration, and operational parameters to an application server service, which can be a web server.Sections 1.8, 2, and 3 of this specification are normative and can contain the terms MAY, SHOULD, MUST, MUST NOT, and SHOULD NOT as defined in [RFC2119]. Sections 1.5 and 1.9 are also normative but do not contain those terms. All other sections and examples in this specification are informative.Glossary XE "Glossary" The following terms are specific to this document:class identifier (CLSID): A GUID that identifies a software component; for instance, a DCOM object class (4) or a COM class.dynamic endpoint: A network-specific server address that is requested and assigned at run time. For more information, see [C706].interface: A specification in a Component Object Model (COM) server that describes how to access the methods of a class. For more information, see [MS-DCOM].Interface Definition Language (IDL): The International Standards Organization (ISO) standard language for specifying the interface for remote procedure calls. For more information, see [C706] section 4.opnum: An operation number or numeric identifier that is used to identify a specific remote procedure call (RPC) method or a method in an interface. For more information, see [C706] section 12.5.2.12 or [MS-RPCE].remote procedure call (RPC): A context-dependent term commonly overloaded with three meanings. Note that much of the industry literature concerning RPC technologies uses this term interchangeably for any of the three meanings. Following are the three definitions: (*) The runtime environment providing remote procedure call facilities. The preferred usage for this meaning is "RPC runtime". (*) The pattern of request and response message exchange between two parties (typically, a client and a server). The preferred usage for this meaning is "RPC exchange". (*) A single message from an exchange as defined in the previous definition. The preferred usage for this term is "RPC message". For more information about RPC, see [C706].universally unique identifier (UUID): A 128-bit value. UUIDs can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably identifying very persistent objects in cross-process communication such as client and server interfaces, manager entry-point vectors, and RPC objects. UUIDs are highly likely to be unique. UUIDs are also known as globally unique identifiers (GUIDs) and these terms are used interchangeably in the Microsoft protocol technical documents (TDs). Interchanging the usage of these terms does not imply or require a specific algorithm or mechanism to generate the UUID. Specifically, the use of this term does not imply or require that the algorithms described in [RFC4122] or [C706] must be used for generating the UUID.MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.References XE "References" Links to a document in the Microsoft Open Specifications library point to the correct section in the most recently published version of the referenced document. However, because individual documents in the library are not updated at the same time, the section numbers in the documents may not match. You can confirm the correct section numbering by checking the Errata. Normative References XE "References:normative" XE "Normative references" We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact dochelp@. We will assist you in finding the relevant information. [C706] The Open Group, "DCE 1.1: Remote Procedure Call", C706, August 1997, [MS-DCOM] Microsoft Corporation, "Distributed Component Object Model (DCOM) Remote Protocol".[MS-DTYP] Microsoft Corporation, "Windows Data Types".[MS-ERREF] Microsoft Corporation, "Windows Error Codes".[MS-OAUT] Microsoft Corporation, "OLE Automation Protocol".[MS-RPCE] Microsoft Corporation, "Remote Procedure Call Protocol Extensions".[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, References XE "References:informative" XE "Informative references" [MSDN-IIS7AH] Microsoft Corporation, "IIS 7.0: IIS Application Host Administration API Reference", XE "Overview (synopsis)" XE "Overview (synopsis)"This protocol is intended to provide read/write access to administrative configuration data that is located on a remote server computer. The administrative configuration data is implementation-specific for each server.Relationship to Other Protocols XE "Relationship to other protocols" XE "Relationship to other protocols"This protocol depends on the protocol described in [MS-DCOM]. Prerequisites/Preconditions XE "Prerequisites" XE "Preconditions" XE "Preconditions" XE "Prerequisites"This protocol requires that the protocol specified in [MS-DCOM] is implemented on both the client and server computers.This protocol specification assumes that any security or authentication associations between the client and server be performed by the DCOM layer.Applicability Statement XE "Applicability" XE "Applicability"This protocol is applicable to the remote reading and writing of hierarchically organized server administration data.Versioning and Capability Negotiation XE "Versioning" XE "Capability negotiation" XE "Capability negotiation" XE "Versioning"This protocol does not provide a mechanism for protocol versioning or capability negotiation.Vendor-Extensible Fields XE "Vendor-extensible fields" XE "Fields - vendor-extensible" XE "Fields - vendor-extensible" XE "Vendor-extensible fields"This protocol does not include any vendor-extensible fields.This protocol uses HRESULTs that are vendor-extensible, as specified in [MS-ERREF] section 2.1. Vendors can choose their own values for this field as long as the C bit (0x20000000) is set, indicating it is a customer code.This protocol uses Win32 error codes. These values are taken from the numbering space of the Windows error codes, as specified in [MS-ERREF] section 2.2. Vendors SHOULD use those values, retaining their default meaning. Choosing any other meaning for these values risks a future collision.Standards Assignments XE "Standards assignments" XE "Standards assignments"The following parameters are implementation-specific proprietary assignments. HYPERLINK \l "Appendix_A_1" \h <1>.ParameterValueReferenceDCOM CLSID for the AppHostAdminManager228fb8f7-fb53-4fd5-8c7b-ff59de606c5bNoneDCOM CLSID for the AppHostWritableAdminManager2b72133b-3f5b-4602-8952-803546ce3344NoneRPC Interface UUID for IAppHostMappingExtension31a83ea0-c0e4-4a2c-8a01-353cc2a4c60aNone RPC Interface UUID for IAppHostChildElementCollection08a90f5f-0702-48d6-b45f-02a9885a9768NoneRPC Interface UUID for IAppHostPropertyCollection0191775e-bcff-445a-b4f4-3bdda54e2816NoneRPC Interface UUID for IAppHostConfigLocationCollection832a32f7-b3ea-4b8c-b260-9a2923001184NoneRPC Interface UUID for IAppHostMethodCollectiond6c7cd8f-bb8d-4f96-b591-d3a5f1320269NoneRPC Interface UUID for IAppHostElementSchemaCollection0344cdda-151e-4cbf-82da-66ae61e97754NoneRPC Interface UUID for IAppHostPropertySchemaCollection8bed2c68-a5fb-4b28-8581-a0dc5267419fNoneRPC Interface UUID for IAppHostConstantValueCollection5b5a68e6-8b9f-45e1-8199-a95ffccdffffNoneRPC Interface UUID for IAppHostConstantValue0716caf8-7d05-4a46-8099-77594be91394NoneRPC Interface UUID for IAppHostPropertySchema450386db-7409-4667-935e-384dbbee2a9eNoneRPC Interface UUID for IAppHostCollectionSchemade095db1-5368-4d11-81f6-efef619b7bcfNoneRPC Interface UUID for IAppHostElementSchemaef13d885-642c-4709-99ec-b89561c6bc69NoneRPC Interface UUID for IAppHostMethodSchema2d9915fb-9d42-4328-b782-1b46819fab9eNoneRPC Interface UUID for IAppHostMethodInstanceb80f3c42-60e0-4ae0-9007-f52852d3dbedNoneRPC Interface UUID for IAppHostMethod7883ca1c-1112-4447-84c3-52fbeb38069dNoneRPC Interface UUID for IAppHostConfigException4dfa1df3-8900-4bc7-bbb5-d1a458c52410NoneRPC Interface UUID for IAppHostPropertyExceptioneafe4895-a929-41ea-b14d-613e23f62b71NoneRPC Interface UUID for IAppHostElementCollectionc8550bff-5281-4b1e-ac34-99b6fa38464dNoneRPC Interface UUID for IAppHostElement64ff8ccc-b287-4dae-b08a-a72cbf45f453NoneRPC Interface UUID for IAppHostPropertyed35f7a1-5024-4e7b-a44d-07ddaf4b524dNoneRPC Interface UUID for IAppHostConfigLocation370af178-7758-4dad-8146-7391f6e18585NoneRPC Interface UUID for IAppHostSectionDefinitionc5c04795-321c-4014-8fd6-d44658799393NoneRPC Interface UUID for IAppHostSectionDefinitionCollectionb7d381ee-8860-47a1-8af4-1f33b2b1f325NoneRPC Interface UUID for IAppHostSectionGroup0dd8a158-ebe6-4008-a1d9-b7ecc8f1104bNoneRPC Interface UUID for IAppHostConfigFileada4e6fb-e025-401e-a5d0-c3134a281f07NoneRPC Interface UUID for IAppHostPathMappere7927575-5cc3-403b-822e-328a6b904beeNoneRPC Interface UUID for IAppHostChangeHandler09829352-87c2-418d-8d79-4133969a489dNoneRPC Interface UUID for IAppHostAdminManager9be77978-73ed-4a9a-87fd-13f09fec1b13NoneRPC Interface UUID for IAppHostWritableAdminManagerfa7660f6-7b3f-4237-a8bf-ed0ad0dcbbd9NoneRPC Interface UUID for IAppHostConfigManager8f6d760f-f0cb-4d69-b5f6-848b33e9bdc6NoneMessagesTransport XE "Messages:transport" XE "Transport" XE "Transport" XE "Messages:transport"This protocol MUST use the DCOM Remote Protocol, as specified in [MS-DCOM], as its transport. On its behalf, the DCOM Remote Protocol uses the following remote procedure call (RPC) protocol sequence: RPC over TCP, as specified in [MS-RPCE]. This protocol uses RPC dynamic endpoints, as specified in [C706] section 4.This protocol MUST use the RPC UUIDs specified in section 1.9.To receive incoming remote calls for these interfaces, the server MUST implement a DCOM Object Class with the CLSIDs (specified in section 1.9) AppHostAdminManager using the UUID {228fb8f7-fb53-4fd5-8c7b-ff59de606c5b}, and AppHostWritableAdminManager using the UUID {2b72133b-3f5b-4602-8952-803546ce3344}.Common Data Types XE "Messages:common data types" XE "Common data types" XE "Data types:common - overview" XE "Data types" XE "Common data types" XE "Messages:data types"None.Protocol Details XE "Protocol Details:overview" The client side of this protocol is simply a pass-through. That is, no additional timers or other states are required on the client side of this protocol. Calls that are made by any client application are passed directly to the transport, and the results that are returned by the transport are passed directly back to the calling application.IIS Application Host Administration Server DetailsAbstract Data Model XE "Server:abstract data model" XE "Abstract data model:server" XE "Data model - abstract:server" XE "Data model - abstract - server" XE "Abstract data model - server" XE "Server:abstract data model"This section describes a conceptual data model that an implementation MUST expose to participate in this protocol. The model is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.Configuration StoreThis protocol is used to manage administrative data that is organized in a hierarchical manner. Each node in the hierarchy is identified by a name. Node names are strings that cannot contain the '/' character. A node can also have one or more child nodes. Node names MUST be unique across sibling nodes. Every node is uniquely identified using a fully qualified name known as a configuration path (see section 3.1.1.2).Each node of the configuration store can store configuration settings (see section 3.1.1.3).Configuration PathEach node can be uniquely identified by a fully qualified name. A fully qualified name consists of names of all the ancestor nodes listed in order beginning with the root node of the tree. Node names in the fully qualified path are separated by the '/' character.A fully qualified path that identifies a node in the configuration store is called the configuration path.For the following example of configuration nodes:Machine Webroot AppHost Site1 App1 Dir1 Dir2 App2 Site2 App3 App4Node Machine has a single child node Webroot. Node Site1 has a child node called App1 that in turn has two child nodes Dir1 and Dir2. The configuration path for node App1 is Machine/Webroot/Apphost/Site1/App1.Configuration SettingsConfiguration settings are where the actual configuration data is stored. Configuration settings are organized in one of three ways, configuration properties, configuration elements, or configuration collections. Configuration data is ultimately stored in configuration properties. Configuration elements and configuration collections are used to organized and group together different configuration properties in a logical way.Configuration PropertiesA configuration property has a name and can store a primitive value of a specific set of types including boolean, integer, string, and other standard types. The configuration property name MUST be unique in relation to its parent configuration element. A configuration property cannot have any children.Configuration ElementsA configuration element is designed to help with the logical organization of data. It can contain zero, or more configuration elements, configuration properties, and configuration collections.It provides the means to organize and group together in a functional way a set of otherwise flat configuration properties.As an example, assume there are anonymous authentication and Windows authentication features that need to store settings. The <anonymousAuthentication> element could store all the settings for anonymous authentication feature while the <windowsAuthentication> element could store all the settings for windows authentication feature.To further organize the settings, the <anonymousAuthentication> and <windowsAuthentication> elements could be grouped together under a configuration element called <authentication>. The <authentication> element can be organized under a parent element called <security>.system.webServer security authentication anonymousAuthentication enabled="true" windowsAuthentication enabled="false"Fully qualified name for the <anonymousAuthentication> element within the hierarchy of configuration elements would be system.webServer/security/authentication/anonymousAuthentication.Configuration CollectionsConfiguration collections are special configuration elements that serve as containers, where elements inside them are considered to be part of a set that can be dynamically added and removed. Elements in these containers are also known as collection items. A configuration item can also contain child elements and configuration properties. The items contained in a configuration collection don't have to be uniquely named and they share the same schema (see section 3.1.1.3.5).Configuration items as members of configuration collections are structurally the same as configuration elements but semantically represent operation on the collection. These operations include such as add element, remove element, or clear the collection.The name of the collection item is the directive. By default, the directives are add, remove, and clear. However the configuration schema allows these names to be overridden for a collection. It implies from the above that collection item names are not unique within a collection.The configuration properties in a collection item describe additional data consumed by the operation.Configuration schema can be used to establish uniqueness and other constraints on a configuration collection.Configuration Sections and Section Definition and Section GroupsA configuration section is a configuration element that contains logically related configuration settings. A configuration section is typically consumed by a functional component on the server, such as an authentication module on a web server. Configuration sections cannot be nested.In order to be able to use a configuration section, the section must be defined either in the current configuration path where it will be used or on a higher or parent configuration path in the configuration hierarchy. This definition is called a section definition.Configuration sections can be optionally grouped together into section groups.Every configuration section has a name. The short name is the name of the configuration section itself. The long name is the full name including all the containing section groups. For example, the full name for the configuration section called "windowsAuthentication" could be "system.webServer/security/authentication/windowsAuthentication" where system.webServer, security, and authentication would be configuration section groups. This hierarchical organization allows configuration sections and section groups with the same name, but under different section groups.Configuration SchemaThe structure of the configuration settings is described using a schema. A client can use configuration schema to discover, navigate and manipulate the configuration store.The schema is the definition of the configuration settings including its layout, validation and additional metadata.The configuration schema contains complete information about configuration elements, configuration collections, and configuration properties. Each configuration property is described by its type, default value, and validation criteria. The configuration schema for each configuration collection includes information about the directive name of the element used for adding and removing collection elements. The default directive for adding is add, for removing is remove, and for clearing, which deletes all the values inherited from an ancestor, is clear. The schema also includes a description for merging semantics to detail, if configuration elements inherited from ancestor are appended after ancestor elements or pre-pended before ancestor elements (see section 3.1.1.3.6).Inheritance and Merging of Configuration SettingsThe configuration system supports configuration settings inheritance along the configuration path.Configuration properties defined at ancestral configuration paths will be automatically inherited to child paths. The value of configuration property that is defined at the ancestral configuration path closest to the requested configuration path will be used. If a configuration property of configuration element is not defined on the current configuration path level nor defined anywhere on any of the ancestral paths, then the default value from the configuration schema will be used.The configuration system also supports configuration collection inheritance and merging along the configuration path. Configuration collection elements from ancestral configuration paths are inherited to child configuration paths. New collection elements can be added on child paths. Existing collection elements inherited from parent nodes can be deleted. All collection elements inherited from a parent can be deleted by using the clear collection element. The configuration schema doesn’t support default collections. If collection is not configured directly on the requested configuration path nor on any of the parent configuration paths, it will be empty.The exact merging rules are as follows:First, the configuration system will check schema to determine if collection supports append or prepend semantics.If it is append, then collection elements from child node will always be listed after its parent's collection elements.In the case of prepend merge, the collection elements from child node will be listed before its parent's collection elements.The configuration system will walk the full configuration path from the root down.For each path, it will read locally defined collection elements.It will clear all the elements from parent if a clear directive is detected.It will remove all the elements flagged with the remove directive.It will add elements of add type to the end of the element list in the case of append merge, or to the beginning of the list in the case of prepend merge.It will fail if it detects a duplicate entry. The configuration schema contains information about which configuration property or set of properties are to be unique.A merged configuration element for a given configuration path is a composite of all configuration properties and collection elements defined on the given configuration path, parent paths, or the default value in the configuration schema. These inheritance and merging rules are used for calculation of merged configuration elements.Programmatic Configuration SettingsThe configuration system MAY support custom server-side extensions. This allows some of the configuration settings to be generated programmatically as opposed to being expressed in storage. The IIS Application Host COM protocol allows clients to query if a configuration element or configuration property is implemented by a server-side extension. Beyond that, server-side extensions are an implementation detail and not governed by this specification.Timers XE "Server:timers" XE "Timers:server" XE "Timers - server" XE "Server:timers"This protocol implementation does not require the explicit use of any timers. Initialization XE "Server:initialization" XE "Initialization:server" XE "Initialization - server" XE "Server:initialization"This protocol uses DCOM initialization.Message Processing Events and Sequencing Rules XE "Server:message processing" XE "Message processing:server" XE "Server:sequencing rules" XE "Sequencing rules:server" XE "Sequencing rules - server" XE "Message processing - server" XE "Server:sequencing rules" XE "Server:message processing"In the interfaces that are described in the following sections, no exceptions are thrown except those that are thrown by the underlying RPC protocol, as specified in [MS-RPCE].IAppHostAdminManager XE "Server:IAppHostAdminManager method" XE "IAppHostAdminManager method" XE "Methods:IAppHostAdminManager" The IAppHostAdminManager interface represents a read-only interface to an administration system that is implemented on the server. The administration system consists primarily of a set of administration objects of varying complexity, which are accessed through the IAppHostElement interface (section 3.1.4.12) and exist at one or more paths that are exposed by the server. The administration system allows access to individual IAppHostElement objects that are available at specific paths and also provides access to merged IAppHostElement objects that consist of the merged contents of individual IAppHostElement objects. Secondarily, the administration system provides access to, and the setting of, specific system behaviors that are available for administration objects, which are represented by the term "metadata". Metadata allows a caller to modify and inspect the behavior of the administration system. The IAppHostAdminManager interface is used by clients to access (for read-only purposes) the contents of the administration system without altering the contents of the system. A tool that seeks to display the administration objects that are contained in the system is an example of a consumer of the IAppHostAdminManager interface.The IAppHostAdminManager interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionGetAdminSectionOpnum: 3GetMetadataOpnum: 4SetMetadataOpnum: 5ConfigManagerOpnum: 6GetAdminSection (Opnum 3) XE "GetAdminSection method"The GetAdminSection method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElement that contains a merging of one or more individual IAppHostElement objects, which are set at one or more places in the path hierarchy that is specified in the method call.HRESULT?GetAdminSection(??[in] BSTR?bstrSectionName,??[in] BSTR?bstrPath,??[out,?retval] IAppHostElement**?ppAdminSection);bstrSectionName: The name of the administration section to fetch. The server contains named IAppHostElement objects that are specified at one or more paths. The name of the IAppHostElement is called the "section name" of the element. This parameter represents the required section name. The section name syntax is specific to the implementation of the server.bstrPath: The path hierarchy for which to find and merge IAppHostElement objects. The server uses this path as an indication of where to look for IAppHostElement objects. The server finds all the IAppHostElement objects that exist anywhere in this path. How the server parses this path and potentially maps it to the location of IAppHostElement objects is specific to each implementation.ppAdminSection: Returns a merged IAppHostElement object that contains the merged contents of one or more IAppHostElement objects that are located at points in the hierarchy that is specified in bstrPath.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070002ERROR_FILE_NOT_FOUNDThe server resource (for example, a file or database) corresponding to the path bstrPath could not be found.0X80070005ERROR_ACCESS_DENIEDAccess to the server resource (for example, a file or database) corresponding to the path bstrPath was denied.0X00000002ERROR_PATH_NOT_FOUNDThe section specified by bstrSectionName is not supported.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetMetadata (Opnum 4) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. The purpose of the method is to retrieve settings and other behavior-modifying attributes of the administration system. The administration system supports modifications through these settings and attributes. The metadata returns the details of these modifications to the caller. The returned metadata is referenced by a string name, and is thus extensible without changing the main Interface Definition Language (IDL) file. As administration systems implementers add more options to their systems, they can expose these options as named metadata through this method.This method is used to get a metadata property.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch. Valid names are as follows.ValueMeaning"pathMapper"Returns the IAppHostPathMapper object, which is a user-provided object that controls how the administration system implementation maps a specified path hierarchy to actual resources."pathMapper2"Returns the IAppHostPathMapper2 object, which is a user-provided object that controls how the administration system implementation maps a specified path hierarchy to actual resources."changeHandler"Returns the IAppHostChangeHandler object, which is a user-provided object that receives notification when the administration system detects that a part of the path hierarchy has changed."ignoreInvalidAttributes"Returns the flag that controls whether the administration system ignores certain types of errors when evaluating the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the container IAppHostElement.bool"ignoreInvalidRanges"Returns the flag that controls whether the administration system should ignore certain types of errors when evaluating the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the container IAppHostElement.bool"ignoreInvalidDecryption"Returns the flag that controls whether the administration system should ignore decryption errors when evaluating the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the container IAppHostElement.bool"expandEnvironmentStrings" Returns the flag that controls whether the administration system should expand environment variables when parsing the configuration system. If the flag is true, the administration system expands the variables. If the flag is false, the administration system does not expand the variables.bool"disableExtensions"Returns a flag that determines whether the administration system supports custom server-side extensions that can extend how the system evaluates IAppHostElement objects. If true, the system will not support custom server-side extensions. If false, the system will support custom server-side extensions. bool"availableSections"Returns a comma-separated series of strings that contains all the names of the available administration section names that are supported by the administration system. Section names represent the names of IAppHostElement objects. If the administration system supports an IAppHostElement that is named "X", then X must appear in the comma-delimited list that is returned.string"mappingExtension"Returns an object that is used to directly access the hierarchy mapping system of the administration system, and is accessed through the IAppHostMappingExtension interface.IAppHostMappingExtension"hideExceptionPhysicalPath" Returns the flag that controls whether the administration system should give information about the physical path of the configuration file in exception messages. If the flag is true, the administration system hides the physical path. If the flag is false, the administration system returns the physical path.bool"lockMetadata" Returns the flag that controls whether metadata can be modified with the SetMetadata call. If the flag is true, then further calls to SetMetadata will fail with a locking violation. If the flag is false, SetMetadata calls are allowed.boolpValue: Returns the value of the specified metadata property, and the type depends on the property fetched. Upon success, the property is returned in a VARIANT, and the type of the value depends on the type of metadata that is requested (specified in bstrMetadataType).Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008E_OUTOFMEMORYNot enough memory is available to process this command.0X80070032ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.SetMetadata (Opnum 5) XE "SetMetadata method"The SetMetadata method is received by the server in an RPC_REQUEST packet. In response, the administration system implementation changes its behavior as specified by the provided metadata. This method is the opposite of the GetMetadata method, which retrieves a specified behavior property of the administration system. SetMetadata sets a specified behavior property of the administration system.This method is used to set a metadata property.HRESULT?SetMetadata(??[in] BSTR?bstrMetadataType,??[in] VARIANT?value);bstrMetadataType: The name of the metadata property to set. Valid names are as follows.ValueMeaning"pathMapper"Sets the IAppHostPathMapper object, which is a user-provided object that controls how the implementation of the administration system maps a specific path hierarchy to actual resources. "pathMapper2"Sets the IAppHostPathMapper2 object, which is a user-provided object that controls how the implementation of the administration system maps a specific path hierarchy to actual resources. "changeHandler"Sets the IAppHostChangeHandler object, which is a user-provided object that receives notification when the administration system detects that a part of the path hierarchy has changed. "ignoreInvalidAttributes"Sets the flag that controls whether the administration system should ignore certain types of errors when evaluating the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the IAppHostElement container.bool"ignoreInvalidRanges"Sets the flag that controls whether the administration system should ignore certain range validation errors when it evaluates the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the IAppHostElement container.bool"ignoreInvalidDecryption"Sets the flag that controls whether the administration system should ignore decryption errors when evaluating the IAppHostProperty part of an IAppHostElement. If the flag is true, the administration system ignores these errors. If the flag is false, the administration system treats these IAppHostProperty errors as fatal and invalidates the IAppHostElement container.bool"expandEnvironmentStrings"Sets the flag that controls whether the administration system should expand environment variables when parsing the configuration system. If the flag is true, the administration system expands the variables. If the flag is false, the administration system does not expand the variables. bool"disableExtensions"Sets a flag that determines whether the administration system supports custom server-side extensions that can extend how the system evaluates IAppHostElement objects. If true, the system will not support custom server-side extensions. If false, the system will support custom server-side extensions. bool"hideExceptionPhysicalPath" Sets the flag that controls whether the administration system should give information about the physical path of the configuration file in exception messages. If the flag is true, the administration system hides the physical path. If the flag is false, the administration system returns the physical path.bool"lockMetadata" Sets the flag that controls whether metadata can be modified with the SetMetadata call. If the flag is true, then further calls to SetMetadata will fail with a locking violation. If the flag is false, SetMetadata calls are allowed.boolvalue: The value of the metadata property to set.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070021ERROR_LOCK_VIOLATIONMetadata property cannot be set because the lockMetadata property is set to true.0X80070032ERROR_NOT_SUPPORTEDThe request is not supported because bstrMetadataType is not one of the supported metadata properties.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ConfigManager (Opnum 6) XE "ConfigManager method"The ConfigManager method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostConfigManager that provides direct access to the supported path hierarchy of the administration system and access to individual IAppHostElement objects that are contained within.[propget] HRESULT?ConfigManager(??[out,?retval] IAppHostConfigManager**?ppConfigManager);ppConfigManager: If the server successfully processes the message that is received from the client, ppConfigManager contains a pointer to an IAppHostConfigManager object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If successful, *ppConfigManager MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000 NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostChangeHandler XE "Server:IAppHostChangeHandler method" XE "IAppHostChangeHandler method" XE "Methods:IAppHostChangeHandler" The IAppHostChangeHandler describes an interface that clients can implement and that is called when the administration system has detected a change in a part of its path hierarchy.To receive incoming remote calls for this interface, the client MUST implement this interface (09829352-87c2-418d-8d79-4133969a489d). It MUST then specify an object that implements this interface to the IAppHostAdminManager::SetMetadata() method by using a bstrMetadataName of "changeHandler". The server then calls this object when the administration system detects a change. The administration system is free to determine the supported time period during which the changes are detected and conveyed through this interface. The time period is either the lifetime of the administration system or a shorter time period. The IAppHostChangeHandler interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionOnSectionChangesOpnum: 3OnSectionChanges (Opnum 3) XE "OnSectionChanges method"The OnSectionChanges method is called by the server by using an RPC_REQUEST packet. This method is called when a change in the path of the administration system hierarchy is detected. The callee (the client-implemented object) can react to this notification as it determines. It can return any error and the server MUST ignore it.HRESULT?OnSectionChanges(??[in] BSTR?bstrSectionName,??[in] BSTR?bstrConfigPath);bstrSectionName: The name of the IAppHostElement on the server that changed. A server is free to not implement this parameter and always passes NULL.bstrConfigPath: The path in the hierarchy where the change was detected by the administration system.Return Values: The return value MUST be ignored by the server.IAppHostChildElementCollection XE "Server:IAppHostChildElementCollection method" XE "IAppHostChildElementCollection method" XE "Methods:IAppHostChildElementCollection" The IAppHostChildElementCollection interface provides methods that allow access to any fixed child IAppHostElement objects that are contained by the specific IAppHostElement object that provides this interface through IAppHostElement::ChildElements(). An IAppHostElement can contain any number of fixed, uniquely named child IAppHostElement objects. This IAppHostChildElementCollection provides access to these child elements.The IAppHostChildElementCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the number of child IAppHostElement objects in the specific IAppHostChildElementCollection object.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Receives a count of the number of child elements that are contained in the specified IAppHostChildElementCollection object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the requested child IAppHostElement object that is contained in the specific IAppHostChildElementCollection object.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostElement**?ppElement);cIndex: A client-specified VARIANT that specifies the specific child IAppHostElement that is to be returned in the method. If the VARIANT is of type integer, the value represents a zero-based index that specifies the index of the child element to return, where 0 indicates the first child, 1 the second, and so on. The VARIANT can also be of the BSTR type, and if so, represents a string name that specifies the exact name of the child element to return.ppElement: Receives a pointer to the child IAppHostElement that matches the criteria that is set by the cIndex parameter.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppElement MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe index specified by cIndex is invalid.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostCollectionSchema XE "Server:IAppHostCollectionSchema method" XE "IAppHostCollectionSchema method" XE "Methods:IAppHostCollectionSchema" The IAppHostCollectionSchema provides methods that describe the schema and constraints that apply to a specific IAppHostElementCollection from which this object was retrieved.The IAppHostCollectionSchema interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionAddElementNamesOpnum: 3GetAddElementSchemaOpnum: 4RemoveElementSchemaOpnum: 5ClearElementSchemaOpnum: 6IsMergeAppendOpnum: 7GetMetadataOpnum: 8DoesAllowDuplicatesOpnum: 9AddElementNames (Opnum 3) XE "AddElementNames method"The AddElementNames method is received by the server in an RPC_REQUEST packet. In response, the server returns a comma-delimited list of names that are supported by the administration system as names to IAppHostElement objects that are collection items of an IAppHostElementCollection object. An administration system typically supports only one name for the IAppHostElement objects that are contained in the collection. However, it could support more names in certain conditions; in which case, all the names are returned by using this method.[propget] HRESULT?AddElementNames(??[out,?retval] BSTR*?pbstrElementName);pbstrElementName: Returns the comma-delimited string that contains the names of all supported names of IAppHostElement objects that are contained in the IAppHostElementCollection from which the specified IAppHostCollectionSchema was retrieved.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrElementName MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetAddElementSchema (Opnum 4) XE "GetAddElementSchema method"The GetAddElementSchema method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElementSchema that represents the schema and constraints of the IAppHostElement. The IAppHostElement can be a collection item of the specified IAppHostElementCollection from which the specified IAppHostCollectionSchema was retrieved and whose name matches the specified name in the method call.HRESULT?GetAddElementSchema(??[in] BSTR?bstrElementName,??[out,?retval] IAppHostElementSchema**?ppSchema);bstrElementName: The name of the IAppHostElement that is contained in the specified collection. It is one of the names that is returned in the AddElementNames method.ppSchema: Returns the IAppHostElementSchema schema object that is associated with the specified element name.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSchema MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe element specified by bstrElementName cannot be found.RemoveElementSchema (Opnum 5) XE "RemoveElementSchema method"The RemoveElementSchema method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostElementSchema that represents the schema and constraints of an optionally supported "directive IAppHostElement". This directive element can be used by the administration system to control the behavior of the specific IAppHostElementCollection from which the specified IAppHostCollectionSchema was retrieved.[propget] HRESULT?RemoveElementSchema(??[out,?retval] IAppHostElementSchema**?ppSchema);ppSchema: Returns an IAppHostElementSchema object that is associated with the optionally supported directive IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF].Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.ClearElementSchema (Opnum 6) XE "ClearElementSchema method"The ClearElementSchema method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostElementSchema that represents the schema and constraints of an optionally supported "directive IAppHostElement". This directive element can be used by the administration system to control behavior of the specific IAppHostElementCollection from which the specified IAppHostCollectionSchema was retrieved.[propget] HRESULT?ClearElementSchema(??[out,?retval] IAppHostElementSchema**?ppSchema);ppSchema: Returns an IAppHostElementSchema object that is associated with the optionally supported directive IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsMergeAppend (Opnum 7) XE "IsMergeAppend method"The IsMergeAppend method is received by the server in an RPC_REQUEST packet. In response, the server returns a Boolean that represents whether the IAppHostElementCollection, from which the specified IAppHostCollectionSchema was retrieved, will prepend collection IAppHostElement objects from lower (deeper) in the hierarchy of the administration system with IAppHostElement objects from higher (shallower) in the hierarchy of the administration system. If the value is false, lower IAppHostElement objects are prepended; otherwise, they are appended.[propget] HRESULT?IsMergeAppend(??[out,?retval] VARIANT_BOOL*?pfIsMergeAppend);pfIsMergeAppend: The Boolean value that represents the append or prepend behavior.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.GetMetadata (Opnum 8) XE "GetMetadata method"The GetMetadata method is currently reserved for future use. The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn't implemented.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata that is retrieved.pValue: Contains the value of the metadata being retrieved.Return Values: The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn’t implemented.DoesAllowDuplicates (Opnum 9) XE "DoesAllowDuplicates method"The DoesAllowDuplicates method is received by the server in an RPC_REQUEST packet. In response, the server returns whether (through a Boolean) the IAppHostElementCollection from which the specified IAppHostCollectionSchema was retrieved allows duplicate IAppHostElement objects to exist in the collection. The concept of "duplicate" is implementation-specific.[propget] HRESULT?DoesAllowDuplicates(??[out,?retval] VARIANT_BOOL*?pfAllowDuplicates);pfAllowDuplicates: The Boolean value that represents whether duplicates are supported.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IAppHostConfigException XE "Server:IAppHostConfigException method" XE "IAppHostConfigException method" XE "Methods:IAppHostConfigException" Methods that receive an error when they access the administration system can retrieve more specific information about why the error occurred by using the IAppHostConfigException interface.The IAppHostConfigException interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionLineNumberOpnum: 3FileNameOpnum: 4ConfigPathOpnum: 5ErrorLineOpnum: 6PreErrorLineOpnum: 7PostErrorLineOpnum: 8ErrorStringOpnum: 9LineNumber (Opnum 3) XE "LineNumber method"The LineNumber (opnum 3) method is received by the server in an RPC_REQUEST packet. In response, the server returns a specific line number that may provide more detail regarding the location of the error in the hierarchy of the administration system.[propget] HRESULT?LineNumber(??[out,?retval] unsigned long*?pcLineNumber);pcLineNumber: Contains the line number.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.FileName (Opnum 4) XE "FileName method"The FileName method is received by the server in an RPC_REQUEST packet. In response, the server returns a file name that can provide more detail regarding the location of the error in the hierarchy of the administration system.[propget] HRESULT?FileName(??[out,?retval] BSTR*?pbstrFileName);pbstrFileName: Contains the file name.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrFileName MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ConfigPath (Opnum 5) XE "ConfigPath method"The ConfigPath method is received by the server in an RPC_REQUEST packet. In response, the server returns a path in the supported hierarchy of the administration system that contains the error.[propget] HRESULT?ConfigPath(??[out,?retval] BSTR*?pbstrConfigPath);pbstrConfigPath: Contains the hierarchy path.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrConfigPath MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ErrorLine (Opnum 6) XE "ErrorLine method"The ErrorLine method is received by the server in an RPC_REQUEST packet. In response, the server returns a textual representation of the specific data in the administration system that is causing the error.[propget] HRESULT?ErrorLine(??[out,?retval] BSTR*?pbstrErrorLine);pbstrErrorLine: Contains the error data.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrErrorLine MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.PreErrorLine (Opnum 7) XE "PreErrorLine method"The PreErrorLine method is received by the server in an RPC_REQUEST packet. In response, the server returns a textual representation of the data that precedes the specific data in the administration system that is causing the error.[propget] HRESULT?PreErrorLine(??[out,?retval] BSTR*?pbstrPreErrorLine);pbstrPreErrorLine: Contains the error data.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrPreErrorLine MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.PostErrorLine (Opnum 8) XE "PostErrorLine method"The PostErrorLine method is received by the server in an RPC_REQUEST packet. In response, the server returns a textual representation of the data that follows the specific data in the administration system that is causing the error.[propget] HRESULT?PostErrorLine(??[out,?retval] BSTR*?pbstrPostErrorLine);pbstrPostErrorLine: Contains the error data.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrPostErrorLine MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes. Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ErrorString (Opnum 9) XE "ErrorString method"The ErrorString method is received by the server in an RPC_REQUEST packet. In response, the server returns a description of the error that occurred in the administration system.[propget] HRESULT?ErrorString(??[out,?retval] BSTR*?pbstrErrorString);pbstrErrorString: Contains the error description.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrErrorString MUST NOT be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostConfigFile XE "Server:IAppHostConfigFile method" XE "IAppHostConfigFile method" XE "Methods:IAppHostConfigFile" The IAppHostConfigFile interface provides methods for direct access to a container of IAppHostElement objects in the administration system. The administration system implements a path hierarchy that allows for IAppHostElement objects to be defined at multiple places. This path hierarchy is conceptually split into two levels. One is the level that is represented by IAppHostConfigFile.Each IAppHostConfigFile maps to a specific path (for example, "MACHINE/WEBROOT"). Within each IAppHostConfigFile, individual IAppHostElement objects exist, which are the base objects of the administration system. Optionally, the IAppHostConfigFile can also support subpaths within it.The IAppHostConfigFile interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionConfigPathOpnum: 3FilePathOpnum: 4LocationsOpnum: 5GetAdminSectionOpnum: 6GetMetadataOpnum: 7SetMetadataOpnum: 8ClearInvalidSectionsOpnum: 9RootSectionGroupOpnum: 10ConfigPath (Opnum 3) XE "ConfigPath method"The ConfigPath method is received by the server in an RPC_REQUEST packet. In response, the server returns the hierarchy path that is represented by the specific IAppHostConfigFile.[propget] HRESULT?ConfigPath(??[out,?retval] BSTR*?pbstrConfigPath);pbstrConfigPath: Contains the hierarchy path.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrConfigPath is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000 NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.FilePath (Opnum 4) XE "FilePath method"The FilePath method is received by the server in an RPC_REQUEST packet. In response, the server returns the server operating system file path that corresponds to the specific IAppHostConfigFile, if that path applies to the administration system implementation.[propget] HRESULT?FilePath(??[out,?retval] BSTR*?pbstrFilePath);pbstrFilePath: Contains the file path of the IAppHostConfigFile.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrFilePath is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Locations (Opnum 5) XE "Locations method"The Locations method is received by the server in an RPC_REQUEST packet. In response, the server returns any hierarchy subpaths that exist in the specified IAppHostConfigFile. These subpaths are returned in the form of a collection object that implements the IAppHostConfigLocationCollection.[propget] HRESULT?Locations(??[out,?retval] IAppHostConfigLocationCollection**?ppLocations);ppLocations: Contains a collection object that contains all the subpaths that are available in the specified IAppHostConfigFile.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppLocations is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000 NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070002 ERROR_FILE_NOT_FOUNDA server resource (for example, a file on a disk) could not be found.0X80070005 ERROR_ACCESS_DENIEDAccess to a server resource (for example, a file on a disk) was denied.0X80070013 ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.GetAdminSection (Opnum 6) XE "GetAdminSection method"The GetAdminSection method is received by the server in an RPC_REQUEST packet. In response, the server returns a single IAppHostElement at the specified hierarchy path in the specific IAppHostConfigFile. The section is not a merge and is instead a single IAppHostElement.If no IAppHostElement object exists at the specified path, the implementation MAY return either an error or an empty IAppHostElement object (the default). This method is used to get a specific administration section.HRESULT?GetAdminSection(??[in] BSTR?bstrSectionName,??[in] BSTR?bstrPath,??[out,?retval] IAppHostElement**?ppAdminSection);bstrSectionName: The name of the IAppHostElement object to retrieve.bstrPath: The hierarchy path of the IAppHostElement object to retrieve. It MUST be a path that is supported in the specific IAppHostConfigFile for the method to succeed and return an IAppHostElement object.ppAdminSection: Contains an IAppHostElement from the specific IAppHostConfigFile.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppAdminSection is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000 NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070002 ERROR_FILE_NOT_FOUNDThe server resource (for example, a file or database) corresponding to the path bstrPath could not be found.0X80070005ERROR_ACCESS_DENIEDAccess to the server resource (for example, a file or database) corresponding to the path bstrPath was denied.0X00000002 ERROR_PATH_NOT_FOUNDThe section specified by bstrPath is not supported.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetMetadata (Opnum 7) XE "GetMetaData method"The GetMetadata method is currently reserved for future use. The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn’t implemented. HRESULT?GetMetaData(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch.pValue: Returns the value of the specified metadata property. The type depends on the property that is fetched.Return Values: The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn't implemented.SetMetadata (Opnum 8) XE "SetMetadata method"The SetMetadata method is currently reserved for future use. The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn't implemented.HRESULT?SetMetadata(??[in] BSTR?bstrMetadataType,??[in] VARIANT?value);bstrMetadataType: The name of the metadata property to set.value: The value of the metadata property to set.Return Values: The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn't implemented.ClearInvalidSections (Opnum 9) XE "ClearInvalidSections method"The ClearInvalidSections method is received by the server in an RPC_REQUEST packet. In response, the server MAY clear any invalid IAppHostElement objects that exist in the specific IAppHostConfigFile.HRESULT?ClearInvalidSections();This method has no parameters.Return Values: This method MUST return S_OK (0x00000000) on success, and a failure result (as specified in [MS-ERREF] section 2) on failure. All failure results MUST be treated identically. The following table specifies failure results specific to this method.Return value/codeDescription0x80070032ERROR_NOT_SUPPORTEDThe request is not supported.When processing this call, the server MUST do the following:If clearing invalid sections is not supported, the server MUST return ERROR_NOT_SUPPORTED.RootSectionGroup (Opnum 10) XE "RootSectionGroup method"The RootSectionGroup method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostSectionGroup object, which represents a declaration of IAppHostElement objects that apply to the specified IAppHostConfigFile and that potentially apply to other IAppHostConfigFile at deeper hierarchy paths than the current file.A declaration means that an IAppHostElement of the name in the declaration MAY exist in the specified IAppHostConfigFile or potentially in deeper paths. A declaration is NOT a definition/instance. A declaration only controls whether an actual IAppHostElement instance is supported.This function returns the section group object in the configSections section group that defines the root section group for the current section.[propget] HRESULT?RootSectionGroup(??[out,?retval] IAppHostSectionGroup**?ppSectionGroups);ppSectionGroups: Contains an IAppHostSectionGroup that contains declarations.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSectionGroups is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostConfigLocation XE "Server:IAppHostConfigLocation method" XE "IAppHostConfigLocation method" XE "Methods:IAppHostConfigLocation" The IAppHostConfigLocation interface provides methods that access the IAppHostElement objects that are contained in a specific hierarchy subpath in a specified IAppHostConfigFile. IAppHostConfigFile maps to a specific hierarchy path in the administration system, as specified in section 3.1.4.6.Each IAppHostConfigFile can optionally contain subpaths within it. Each subpath is represented by an IAppHostConfigLocation object. The object contains a collection of IAppHostElement objects, with the guarantee that each IAppHostConfigLocation contains at most one IAppHostElement object of the same name (in other words, the IAppHostElement object name is a key into the collection).The IAppHostConfigLocation interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionPathOpnum: 3CountOpnum: 4ItemOpnum: 5AddConfigSectionOpnum: 6DeleteConfigSectionOpnum: 7Path (Opnum 3) XE "Path method"The Path method is received by the server in an RPC_REQUEST packet. In response, the server returns the subpath for the specific IAppHostConfigLocation.[propget] HRESULT?Path(??[out,?retval] BSTR*?pbstrLocationPath);pbstrLocationPath: Contains the path for the specific IAppHostConfigLocation. If the path is "" (an empty string), it represents the same path as the containing IAppHostConfigFile.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrLocationPath is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Count (Opnum 4) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the number of IAppHostElement objects that are defined or exist at the specified IAppHostConfigLocation.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: The integer count of the number of IAppHostElement objects at the specified IAppHostConfigLocation.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 5) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostElement object that corresponds to the specific index parameter.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostElement**?ppSection);cIndex: A VARIANT, which is used to specify the IAppHostElement object to retrieve. If the VARIANT is of type integer, the index is a zero-based index to the collection of IAppHostElement objects, where 0 indicates the first IAppHostElement object, 1 the second, and so on. If the VARIANT is of type string, the index is the name of the IAppHostElement object that is retrieved.ppSection: Contains an IAppHostElement object, if found.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSection is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid or the element with name specified by cIndex could not be found.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.AddConfigSection (Opnum 6) XE "AddConfigSection method"The AddConfigSection method is received by the server in an RPC_REQUEST packet. In response, the server attempts to create a new empty IAppHostElement and add it to the specified IAppHostConfigLocation. The server MAY choose to create the IAppHostElement object in memory only and not persist it to permanent storage, such as a disk file, until later.HRESULT?AddConfigSection(??[in] BSTR?bstrSectionName,??[out,?retval] IAppHostElement**?ppAdminElement);bstrSectionName: The name of the new IAppHostElement section to add.ppAdminElement: Contains a newly created IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppAdminElement is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X800700B7ERROR_ALREADY_EXISTSA configuration element with the name specified by bstrSectionName already exists.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.DeleteConfigSection (Opnum 7) XE "DeleteConfigSection method"The DeleteConfigSection method is received by the server in an RPC_REQUEST packet. In response, the server attempts to delete the IAppHostElement of the specified index.HRESULT?DeleteConfigSection(??[in] VARIANT?cIndex);cIndex: A VARIANT, which is used to specify the IAppHostElement object to delete. If the VARIANT is of type integer, the index is a zero-based index to the collection of IAppHostElement objects, where 0 indicates the first IAppHostElement object, 1 the second, and so on. If the VARIANT is of type string, the index is the name of the IAppHostElement object being retrieved.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or the element with name specified by cIndex could not be found.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostConfigLocationCollection XE "Server:IAppHostConfigLocationCollection method" XE "IAppHostConfigLocationCollection method" XE "Methods:IAppHostConfigLocationCollection" The IAppHostConfigLocationCollection interface provides methods that access the collection of subpaths that are available in the specified IAppHostConfigFile.The IAppHostConfigLocationCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4AddLocationOpnum: 5DeleteLocationOpnum: 6Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of subpaths (each represented by the IAppHostConfigLocation) in the specified collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains a count of the number of subpaths in the specified collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the specific IAppHostConfigLocation that represents the subpath being retrieved.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?varIndex,??[out,?retval] IAppHostConfigLocation**?ppLocation);varIndex: A VARIANT, which is used to specify the IAppHostConfigLocation object to retrieve. If the VARIANT is of type integer, the index is a zero-based index to the collection of IAppHostElement objects, where 0 indicates the first IAppHostElement object, 1 the second, and so on. If the VARIANT is of type string, the index is the name of the subpath being retrieved.ppLocation: Contains a subpath that represents IAppHostConfigLocation.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppLocation is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid.0X00000002ERROR_PATH_NOT_FOUNDThe subpath with name specified by cIndex could not be found.AddLocation (Opnum 5) XE "AddLocation method"The AddLocation method is received by the server in an RPC_REQUEST packet. In response, the server attempts to create a new subpath container in the IAppHostConfigFile that provides the specified IAppHostConfigLocationCollection.HRESULT?AddLocation(??[in] BSTR?bstrLocationPath,??[out,?retval] IAppHostConfigLocation**?ppNewLocation);bstrLocationPath: The new subpath to add.ppNewLocation: Contains a new subpath container IAppHostConfigLocation object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppNewLocation is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070005ERROR_ACCESS_DENIEDThe instance is not editable.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X800700B7ERROR_ALREADY_EXISTSThe location path specified by bstrLocationPath cannot be added since it already exists.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X800700A1ERROR_BAD_PATHNAMEThe server resource (for example, a file or database) corresponding to the path bstrLocationPath could not be found.DeleteLocation (Opnum 6) XE "DeleteLocation method"The DeleteLocation method is received by the server in an RPC_REQUEST packet. In response, the server attempts to delete the specific subpath container (the IAppHostConfigLocation object).HRESULT?DeleteLocation(??[in] VARIANT?cIndex);cIndex: A VARIANT, which is used to specify the IAppHostConfigLocation object to delete. If the VARIANT is of type integer, the index is a zero-based index to the collection of IAppHostElement objects, where 0 indicates the first IAppHostElement object, 1 the second, and so on. If the VARIANT is of type string, the index is the name of the subpath being deleted.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070005ERROR_ACCESS_DENIEDThe instance is not editable.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or the location with name specified by cIndex could not be found.IAppHostConfigManager XE "Server:IAppHostConfigManager method" XE "IAppHostConfigManager method" XE "Methods:IAppHostConfigManager" The IAppHostConfigManager interface provides methods that allow access to the available hierarchy paths and the IAppHostElement objects that are defined within.The IAppHostConfigManager interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionGetConfigFileOpnum: 3GetUniqueConfigPathOpnum: 4GetConfigFile (Opnum 3) XE "GetConfigFile method"The GetConfigFile method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostConfigFile for the specific hierarchy path.The administration system implementation can choose to fail if the specified hierarchy path does not have an IAppHostConfigFile container for it. Or it can choose to succeed and create an empty IAppHostConfigFile container instead. HRESULT?GetConfigFile(??[in] BSTR?bstrConfigPath,??[out,?retval] IAppHostConfigFile**?ppConfigFile);bstrConfigPath: The hierarchy path for the IAppHostConfigFile to retrieve.ppConfigFile: Contains an IAppHostConfigFile object for the specified path.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppConfigFile is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070002ERROR_FILE_NOT_FOUNDThe server resource (for example, a file or database) corresponding to bstrConfigPath could not be found.0X80070005ERROR_ACCESS_DENIEDAccess to a server resource (for example, a file on a disk) was denied.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetUniqueConfigPath (Opnum 4) XE "GetUniqueConfigPath method"The GetUniqueConfigPath method is received by the server in an RPC_REQUEST packet. In response, the server returns the deepest hierarchy path (up to the specified hierarchy path) that contains a unique set of IAppHostElement objects. For example:Assume: At hierarchy path A, a set of IAppHostElement objects exist. Assume: At hierarchy path B (deeper than A), the identical set of objects exists. Given these assumptions, GetUniqueConfigPath( B ) returns path A. In other words, the method returns the shallowest path that contains the identical set of IAppHostElement objects as the specified path. HRESULT?GetUniqueConfigPath(??[in] BSTR?bstrConfigPath,??[out,?retval] BSTR*?pbstrUniquePath);bstrConfigPath: The hierarchy path for which to find the shallowest equivalent path.pbstrUniquePath: Contains the shallowest equivalent path.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrUniquePath is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X00000002ERROR_PATH_NOT_FOUNDA server resource (for example, a file on a disk) could not be found.0X80070005ERROR_ACCESS_DENIEDAccess to a server resource (for example, a file on a disk) was denied.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostConstantValue XE "Server:IAppHostConstantValue method" XE "IAppHostConstantValue method" XE "Methods:IAppHostConstantValue" The IAppHostConstantValue interface provides methods that access the string names of a specific constant and its corresponding value.The IAppHostConstantValue interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3ValueOpnum: 4Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server provides the string name of the specified constant.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the constant value.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Value (Opnum 4) XE "Value method"The Value method is received by the server in an RPC_REQUEST packet. In response, the server returns the integer value of the constant.[propget] HRESULT?Value(??[out,?retval] DWORD*?pdwValue);pdwValue: Contains the integer value of the specified constant.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IAppHostConstantValueCollection XE "Server:IAppHostConstantValueCollection method" XE "IAppHostConstantValueCollection method" XE "Methods:IAppHostConstantValueCollection" The IAppHostConstantValueCollection interface provides methods that access a collection of constant values.The IAppHostConstantValueCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of constant values in the specified IAppHostConstantValueCollection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains the count of constant values.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the specified constant value.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostConstantValue**?ppConstantValue);cIndex: A VARIANT that represents the constant value to retrieve. If the VARIANT is of type integer, the index is a zero-based index to the collection of IAppHostElement objects, where 0 indicates the first IAppHostElement object, 1 the second, and so on. If the VARIANT is of type string, it is the name of the constant value.ppConstantValue: Contains the constant value.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppConstantValue is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or the element with name specified by cIndex could not be found.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostElement XE "Server:IAppHostElement method" XE "IAppHostElement method" XE "Methods:IAppHostElement" The IAppHostElement interface provides methods to the base administration system object of this whole project.The administration system is a container of IAppHostElement objects. IAppHostElement objects are primarily an n-way-tree object, with each IAppHostElement object primarily containing:Zero or more IAppHostProperty objects. Each has its own unique fixed name.Zero or more child IAppHostElement objects (hence the n-way-tree description). Each has its own unique fixed name.An optional collection of zero or more special child IAppHostElement objects that are called collection objects. Each typically has the same fixed name.Zero or more IAppHostMethod objects, which are additional extension methods that can be executed on the specified IAppHostElement object.The IAppHostElement interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3CollectionOpnum: 4PropertiesOpnum: 5ChildElementsOpnum: 6GetMetadataOpnum: 7SetMetadataOpnum: 8SchemaOpnum: 9GetElementByNameOpnum: 10GetPropertyByNameOpnum: 11ClearOpnum: 12MethodsOpnum: 13Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the IAppHostElement object.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Collection (Opnum 4) XE "Collection method"The Collection method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElementCollection that represents a collection of "collection IAppHostElement" objects. If the specific IAppHostElement does not support this type of child object, it indicates this in the return.[propget] HRESULT?Collection(??[out,?retval] IAppHostElementCollection**?ppCollection);ppCollection: Contains an IAppHostElementCollection that represents the collection child elements. If the specific IAppHostElement does not support this type of child element, this parameter is NULL.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.Properties (Opnum 5) XE "Properties method"The Properties method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostPropertyCollection that contains the IAppHostProperty objects that are available for this IAppHostElement.[propget] HRESULT?Properties(??[out,?retval] IAppHostPropertyCollection**?ppProperties);ppProperties: Contains the IAppHostPropertyCollection that represents the collection of IAppHostProperty objects that are available.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppProperties is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.ChildElements (Opnum 6) XE "ChildElements method"The ChildElements method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostChildElementCollection that contains child IAppHostElement objects if any child IAppHostElement objects exist.[propget] HRESULT?ChildElements(??[out,?retval] IAppHostChildElementCollection**?ppElements);ppElements: Contains an IAppHostChildElementCollection if there are child IAppHostElement objects in the specified IAppHostElement object. Otherwise, it is NULL.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.GetMetadata (Opnum 7) XE "GetMetaData method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the specific piece of named metadata.HRESULT?GetMetaData(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch. Valid names are as follows.ValueMeaning"overrideMode"A string that represents the explicit override mode of the specified IAppHostElement object. Override mode defines the locking behavior of an IAppHostElement object as it relates to other IAppHostElement objects at deeper hierarchy paths. The administration system can implement override rules, the selection of which is reflected by this metadata.string"effectiveOverrideMod"A string that represents the effective override mode of the specified IAppHostElement object. Override mode defines the locking behavior of an IAppHostElement object as it relates to other IAppHostElement objects at deeper hierarchy paths. The administration system can implement override rules, the selection of which is reflected by this metadata.string"allowCommit"A Boolean that represents whether the administration system supports changing or editing of the specified IAppHostElement object.bool"deepestPathSet"A string that represents the deepest hierarchy path from which the specified IAppHostElement object was derived. This is only meaningful if this IAppHostElement object is a merged object from multiple sources. This metadata is the path of the deepest source that was merged. string"deepestFileNameSet"A string that represents an operating system file path (if applicable) that corresponds to the deepest hierarchy path metadata "deepestPathSet". string"deepestFileLineNumberSet"An integer that represents a location within the corresponding metadata "deepestFileNameSet".uint32"configSource"A string that represents an optional redirection path from which the specified IAppHostElement object was retrieved. The path is specific to the administration system and is only applicable if the administration system supports alternate redirection paths.string"childSource"A string that represents an optional redirection path from which the specified IAppHostElement object was retrieved. The path is specific to the administration system and only applicable if the administration system supports alternate redirection paths. The difference between "configSource" and "childSource" is an implementation detail of the redirection support of the administration system. string"lockItem"A Boolean that represents whether the specified IAppHostElement object can be set at deeper hierarchy paths. If true, the item cannot be set deeper. bool"lockAllElementsExcept"A string that represents a comma-delimited list of child element names that are allowed to be set at deeper hierarchy paths. All other unlisted child elements are not allowed to be set at deeper paths.string"lockElements"A string that represents a comma-delimited list of child element names that are not allowed to be set at deeper hierarchy paths. string"lockAllAttributesExcept"A string that represents a comma-delimited list of property names that are allowed to be set at deeper hierarchy paths. All other unlisted properties are not allowed to be set at deeper paths.string"lockAttributes"A string that represents a comma-delimited list of property names that are not allowed to be set at deeper hierarchy paths. stringIf SetMetadata() is called with another name, that metadata is stored and can be retrieved with GetMetadata().pValue: Contains a VARIANT that represents the metadata that is retrieved.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.0X00000008E_OUTOFMEMORYNot enough memory is available to process this command.SetMetadata (Opnum 8) XE "SetMetadata method"The SetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the value of the metadata from the server administration system.This method is used to set a metadata property.HRESULT?SetMetadata(??[in] BSTR?bstrMetadataType,??[in] VARIANT?value);bstrMetadataType: The name of the metadata property to set. Valid names are as follows.ValueMeaning"overrideMode"A string that represents the explicit override mode of the specified IAppHostElement object. Override mode defines the locking behavior of an IAppHostElement object as it relates to other IAppHostElement objects at deeper hierarchy paths. The administration system is free to implement override rules, the selection of which is reflected by this metadata.string"configSource"A string that represents an optional redirection path from which the specified IAppHostElement object was retrieved. The path is specific to the administration system and only applicable if the administration system supports alternate redirection paths.string"childSource"A string that represents an optional redirection path from which the specified IAppHostElement object was retrieved. The path is specific to the administration system and only applicable if the administration system supports alternate redirection paths. The difference between "configSource" and "childSource" is totally an implementation detail of the redirection support of the administration system. string"lockItem"A Boolean that represents whether the specified IAppHostElement object can be set at deeper hierarchy paths. If true, the item cannot be set deeper. bool"lockAllElementsExcept"A string that represents a comma-delimited list of child element names that are allowed to be set at deeper hierarchy paths. All other unlisted child elements are not allowed to be set at deeper paths.string"lockElements"A string that represents a comma-delimited list of child element names that are not allowed to be set at deeper hierarchy paths. string"lockAllAttributesExcept"A string that represents a comma-delimited list of property names that are allowed to be set at deeper hierarchy paths. All other unlisted properties are not allowed to be set at deeper paths.string"lockAttributes"A string that represents a comma-delimited list of property names that are not allowed to be set at deeper hierarchy paths. stringIf SetMetadata() is called with another name, that metadata is stored and can be retrieved with GetMetadata().value: The value of the metadata property to set.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.0X80070013ERROR_INVALID_DATAThe data is invalid. The value that was attempted to be set is invalid against the schema.Schema (Opnum 9) XE "Schema method"The Schema method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElementSchema that represents the schema and constraints for the specified IAppHostElement object.[propget] HRESULT?Schema(??[out,?retval] IAppHostElementSchema**?ppSchema);ppSchema: Contains schema of the specified IAppHostElement object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.GetElementByName (Opnum 10) XE "GetElementByName method"The GetElementByName method is received by the server in an RPC_REQUEST packet. In response, the server returns the child IAppHostElement object with the specified name.HRESULT?GetElementByName(??[in] BSTR?bstrSubName,??[out,?retval] IAppHostElement**?ppElement);bstrSubName: The name of the child element to retrieve.ppElement: Contains the child IAppHostElement object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppElement is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe child element specified by bstrSubName could not be found.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetPropertyByName (Opnum 11) XE "GetPropertyByName method"The GetPropertyByName method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostProperty of the specified name.HRESULT?GetPropertyByName(??[in] BSTR?bstrPropertyName,??[out,?retval] IAppHostProperty**?ppProperty);bstrPropertyName: The name of the IAppHostProperty to fetch.ppProperty: Contains an IAppHostProperty of the specified name.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppProperty is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe property specified by bstrPropertyName could not be found.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Clear (Opnum 12) XE "Clear method"The Clear method is received by the server in an RPC_REQUEST packet. In response, the server clears the contents of the specified IAppHostElement object. The administration system can choose to do the clear in memory or may persist it directly to permanent storage.HRESULT?Clear();This method has no parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070021ERROR_LOCK_VIOLATIONThe element is not editable.Methods (Opnum 13) XE "Methods method"The Methods method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostMethodCollection, which is the collection of methods that are supported for the specific IAppHostElement object.[propget] HRESULT?Methods(??[out,?retval] IAppHostMethodCollection**?ppMethods);ppMethods: Contains an IAppHostMethodCollection, which is a collection of methods that are supported for the specific IAppHostElement object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppMethods is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostElementCollection XE "Server:IAppHostElementCollection method" XE "IAppHostElementCollection method" XE "Methods:IAppHostElementCollection" The IAppHostElementCollection interface provides methods that access a collection of "collection IAppHostElements"."Collection IAppHostElements" are a special class of child IAppHostElement objects where all objects typically share the same name but contain different IAppHostProperty objects. This IAppHostElementCollection is a collection of these special objects.The IAppHostElementCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountReturns the count of elements.Opnum: 3ItemReturns the value that is associated with the element at the specified index.Opnum: 4AddElementAdds an element to the collection.Opnum: 5DeleteElementDeletes an element from the collection.Opnum: 6ClearClears an element from the collection.Opnum: 7CreateNewElementCreates a new element in the collection.Opnum: 8SchemaReturns the Document Object Model (DOM) description for the collection.Opnum: 9Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns a count of the number of IAppHostElement objects in the collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcElementCount);pcElementCount: Contains the number of elements that are contained in the element collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElement for the specified index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostElement**?ppElement);cIndex: A VARIANT that specifies the IAppHostElement object to return from the collection. If the VARIANT is of type integer, the index is a zero-based index to the collection, where 0 indicates the first IAppHostElement, 1 the second, and so on. If the VARIANT is of type IAppHostElement, the index is a "selector" IAppHostElement to the specified collection.ppElement: Contains the collection IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppElement is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or the IAppHostElement specified by cIndex doesn’t match any element in the collection.AddElement (Opnum 5) XE "AddElement method"The AddElement method is received by the server in an RPC_REQUEST packet. In response, the server attempts to add a newly created IAppHostElement object to the specified collection.This function adds an element to the current collection of elements.HRESULT?AddElement(??[in] IAppHostElement*?pElement,??[in,?defaultvalue(-1)] int?cPosition);pElement: The element to add to the collection.cPosition: The position at which the element was added to the collection. If -1, the new element is appended. Otherwise, the position represents the zero-based index to the collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070585ERROR_INVALID_INDEXThe index specified by cPosition is invalid.DeleteElement (Opnum 6) XE "DeleteElement method"The DeleteElement method is received by the server in an RPC_REQUEST packet. In response, the server deletes the IAppHostElement at the specified index.HRESULT?DeleteElement(??[in] VARIANT?cIndex);cIndex: A VARIANT that specifies the IAppHostElement object to return from the collection. If the VARIANT is of type integer, the index is a zero-based index to the collection, where 0 indicates the first IAppHostElement, 1 the second, and so on. If the VARIANT is of type IAppHostElement, the index is a "selector" IAppHostElement to the specified collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070585ERROR_INVALID_INDEXThe index specified by cIndex is invalid.Clear (Opnum 7) XE "Clear method"The Clear method is received by the server in an RPC_REQUEST packet. In response, the server clears the specified IAppHostElementCollection of all the collection IAppHostElement objects in it.HRESULT?Clear();This method has no parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.CreateNewElement (Opnum 8) XE "CreateNewElement method"The CreateNewElement method is received by the server in an RPC_REQUEST packet. In response, the server creates a new unattached IAppHostElement object that has the specified name. The name MUST be a supported name as defined by the IAppHostCollectionSchema of the specified IAppHostElementCollection.HRESULT?CreateNewElement(??[in,?defaultvalue("")] BSTR?bstrElementName,??[out,?retval] IAppHostElement**?ppElement);bstrElementName: The name of the IAppHostElement to be created.ppElement: Contains a new IAppHostElement object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppElement is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070585ERROR_INVALID_INDEXThe schema does not permit the creation of an element with name bstrElementName.Schema (Opnum 9) XE "Schema method"The Schema method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostCollectionSchema for the specified IAppHostElementCollection, which represents the schema and constraints of the specified collection.[propget] HRESULT?Schema(??[out,?retval] IAppHostCollectionSchema**?ppSchema);ppSchema: Contains the schema object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IAppHostElementSchema XE "Server:IAppHostElementSchema method" XE "IAppHostElementSchema method" XE "Methods:IAppHostElementSchema" The IAppHostElementSchema interface provides methods that access the schema and constraints of a specific IAppHostElement object.The IAppHostElementSchema interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameReturns the name of the element entry.Opnum: 3DoesAllowUnschematizedPropertiesDetermines if the section allows unrecognized attributes.Opnum: 4GetMetadataUsed to get a metadata property. Opnum: 5CollectionSchemaOpnum: 6ChildElementSchemasOpnum: 7PropertySchemasOpnum: 8IsCollectionDefaultOpnum: 9Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the corresponding IAppHostElement from which the IAppHostElementSchema was retrieved.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the element.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.DoesAllowUnschematizedProperties (Opnum 4) XE "DoesAllowUnschematizedProperties method"The DoesAllowUnschematizedProperties method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the corresponding IAppHostElement supports IAppHostProperty objects.[propget] HRESULT?DoesAllowUnschematizedProperties(??[out,?retval] VARIANT_BOOL*?pfAllowUnschematized);pfAllowUnschematized: Contains a Boolean that indicates whether the element supports unschematized IAppHostProperty objects.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.GetMetadata (Opnum 5) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the specific element of named metadata.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch. Valid names are as follows.ValueMeaning"extension"Returns a string that identifies the server-side extension that implements this IAppHostElementSchema instance, if one exists, or NULL otherwise. The client can use this metadata property to query if the IAppHostElementSchema has a server-side extension. The actual contents of the string are implementation-specific and MUST be ignored by the client.pValue: Contains a VARIANT that represents the metadata that is retrieved.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.CollectionSchema (Opnum 6) XE "CollectionSchema method"The CollectionSchema method is received by the server in an RPC_REQUEST packet. If the specified IAppHostElement object supports child collection elements, the server returns the schema and constraints of the collection that is contained in the corresponding IAppHostElement object.[propget] HRESULT?CollectionSchema(??[out,?retval] IAppHostCollectionSchema**?ppCollectionSchema);ppCollectionSchema: Contains an IAppHostCollectionSchema.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppCollectionSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.ChildElementSchemas (Opnum 7) XE "ChildElementSchemas method"The ChildElementSchemas method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints of any child elements that are contained in the corresponding IAppHostElement object.[propget] HRESULT?ChildElementSchemas(??[out,?retval] IAppHostElementSchemaCollection**?ppChildSchemas);ppChildSchemas: Contains the schema collection of the supported child IAppHostElement objects.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppChildSchemas is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.PropertySchemas (Opnum 8) XE "PropertySchemas method"The PropertySchemas method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints for the IAppHostProperty objects that are contained in the corresponding IAppHostElement.[propget] HRESULT?PropertySchemas(??[out,?retval] IAppHostPropertySchemaCollection**?ppPropertySchemas);ppPropertySchemas: Contains the collection of IAppHostProperty schema.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppPropertySchemas is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsCollectionDefault (Opnum 9) XE "IsCollectionDefault method"The IsCollectionDefault method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the corresponding IAppHostElement object is also considered to be a supported default for other IAppHostElement objects in the administration system.[propget] HRESULT?IsCollectionDefault(??[out,?retval] VARIANT_BOOL*?pfIsCollectionDefault);pfIsCollectionDefault: Contains a Boolean that indicates whether the corresponding IAppHostElement object is a default for other IAppHostElement objects.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostElementSchemaCollection XE "Server:IAppHostElementSchemaCollection method" XE "IAppHostElementSchemaCollection method" XE "Methods:IAppHostElementSchemaCollection" The IAppHostElementSchemaCollection interface provides methods that access a collection of schema and constraints for child IAppHostElement objects that are supported by the corresponding IAppHostElement object.The IAppHostElementSchemaCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of IAppHostElementSchema objects that are contained in the collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains the count in the collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostElementSchema that is specified by the specific index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostElementSchema**?ppElementSchema);cIndex: A VARIANT that specifies the IAppHostElementSchema to retrieve from the collection. If the VARIANT is of type integer, this is a zero-based index to the collection. If the VARIANT is of type string, this is a string index that represents the name of the IAppHostElementSchema that is being retrieved.ppElementSchema: Contains the IAppHostElementSchema that is being selected.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppElementSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585 ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or there is no IAppHostElementSchema instance in the collection with a name as specified by cIndex.IAppHostMappingExtension XE "Server:IAppHostMappingExtension method" XE "IAppHostMappingExtension method" XE "Methods:IAppHostMappingExtension" The IAppHostMappingExtension interface provides methods that access the path hierarchy mapping system of the administration system.The administration system implements a path hierarchy system that maps paths to potential IAppHostElement containers. Some details of the path hierarchy are exposed to the user in this IAppHostMappingExtension.The IAppHostMappingExtension interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionGetSiteNameFromSiteIdOpnum: 3GetSiteIdFromSiteNameOpnum: 4GetSiteElementFromSiteIdOpnum: 5MapPathOpnum: 6GetSiteNameFromSiteID (Opnum 3) XE "GetSiteNameFromSiteId method"The GetSiteNameFromSiteId method is received by the server in an RPC_REQUEST packet. In response, the server returns a string name for the specific integer site ID, which is a concept that is implemented on the administration system (it is an implementation detail).HRESULT?GetSiteNameFromSiteId(??[in] DWORD?dwSiteId,??[out,?retval] BSTR*?pbstrSiteName);dwSiteId: The unique site ID number that is represented in a double-word format. Note that "0" is not a valid site ID.pbstrSiteName: Contains the string that represents the unique site name for the specified site ID.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrSiteName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070002ERROR_FILE_NOT_FOUNDThe configuration has no site with ID dwSiteId.0X80070490ERROR_NOT_FOUNDThe configuration contains no sites.GetSiteIDFromSiteName (Opnum 4) XE "GetSiteIdFromSiteName method"The GetSiteIdFromSiteName method is received by the server in an RPC_REQUEST packet. In response, the server returns a unique integer ID for the specific site name. Site name and ID are implementation details of the administration system.HRESULT?GetSiteIdFromSiteName(??[in] BSTR?bstrSiteName,??[out,?retval] DWORD*?pdwSiteId);bstrSiteName: The unique site name string.pdwSiteId: Contains the double-word value that represents the unique site ID for the specified name. Note that "0" is NOT a valid site ID.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070002 ERROR_FILE_NOT_FOUNDThe configuration has no site with name bstrSiteName.0X80070490ERROR_NOT_FOUNDThe configuration contains no sites.GetSiteElementFromSiteID (Opnum 5) XE "GetSiteElementFromSiteId method"The GetSiteElementFromSiteId method is received by the server in an RPC_REQUEST packet. In response, the server obtains the site section element from a specific site ID in order to access site configuration and properties.HRESULT?GetSiteElementFromSiteId(??[in] DWORD?dwSiteId,??[out,?retval] IAppHostElement**?ppSiteElement);dwSiteId: The unique site ID number that is represented in a double-word format.ppSiteElement: Returns an administration element object that represents the site element of the site section and includes properties, metadata, and methods.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070002ERROR_FILE_NOT_FOUNDThe given site ID could not be found.MapPath (Opnum 6) XE "MapPath method"The MapPath method is received by the server in an RPC_REQUEST packet. In response, the server returns how the administration system maps the specific site name and virtual path into an optionally returned implementation-specific operating system physical path, and the server optionally returns the IAppHostElement objects that contain the definition of the mapping hierarchy that applies.The "mapping hierarchy that applies" means describing the matching rules that the administration system uses to map a specific hierarchy path. Because there are two returned IAppHostElement objects, this allows the server protocol implementation to provide a two-level mapping system where a path is first matched to an application and then mapped to a virtual directory. Regardless of what these two concepts (application and virtual directory) represent, their mapping details are contained in the optionally returned parameters. HRESULT?MapPath(??[in] BSTR?bstrSiteName,??[in] BSTR?bstrVirtualPath,??[out] BSTR*?pbstrPhysicalPath,??[out] IAppHostElement**?ppVirtualDirectoryElement,??[out] IAppHostElement**?ppApplicationElement);bstrSiteName: The unique site name string.bstrVirtualPath: A hierarchy path to map.pbstrPhysicalPath: Returns an implementation-specific physical path in the file system to where the virtual path maps. Optional.ppVirtualDirectoryElement: Returns the second-level mapped virtual directory that is matched in the mapping. Optional.ppApplicationElement: Returns the first-level mapped application that is matched in the mapping. Optional.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. For each of the output parameters, in this case, they will not be NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070013 ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostMethod XE "Server:IAppHostMethod method" XE "IAppHostMethod method" XE "Methods:IAppHostMethod" The IAppHostMethod interface provides methods that access a custom method that is optionally supported on a specific IAppHostElement object.An IAppHostElement object provides a means for an administration system to support custom-defined methods that can be executed against a specific IAppHostElement object. The methods are executed on the server side and the implementation of these custom methods is not exposed to the client.The IAppHostMethod interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3SchemaOpnum: 4CreateInstanceOpnum: 5Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the custom method.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the method.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Schema (Opnum 4) XE "Schema method"The Schema method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints for the specified custom IAppHostMethod.[propget] HRESULT?Schema(??[out,?retval] IAppHostMethodSchema**?ppMethodSchema);ppMethodSchema: Contains the schema of the specified IAppHostMethod.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppMethodSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.CreateInstance (Opnum 5) XE "CreateInstance method"The CreateInstance method is received by the server in an RPC_REQUEST packet. In response, the server creates an instance object of the method that can be executed. This behavior is analogous to the stack frame of a native method call.HRESULT?CreateInstance(??[out,?retval] IAppHostMethodInstance**?ppMethodInstance);ppMethodInstance: Contains the method instance.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppMethodInstance is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostMethodCollection XE "Server:IAppHostMethodCollection method" XE "IAppHostMethodCollection method" XE "Methods:IAppHostMethodCollection" The IAppHostMethodCollection interface provides methods that access a collection of supported IAppHostMethod objects.The IAppHostMethodCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of IAppHostMethod objects in the collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains the count of IAppHostMethod objects.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostMethod that is specified by the index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostMethod**?ppMethod);cIndex: A VARIANT that specifies which IAppHostMethod is being selected from the collection. If the VARIANT is of type integer, the index is a zero-based index to the collection. If the VARIANT is of type string, the index is the name of the method being accessed.ppMethod: Contains the IAppHostMethod that is being retrieved.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppMethod is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe integer specified by cIndex is invalid, or there is no IappHostMethod instance in the collection with a name as specified by cIndex.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostMethodInstance XE "Server:IAppHostMethodInstance method" XE "IAppHostMethodInstance method" XE "Methods:IAppHostMethodInstance" The IAppHostMethodInstance interface provides methods that access a specific invocation instance of the corresponding IAppHostMethod. The caller sets parameters and then executes the instance of the method.The IAppHostMethodInstance interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionInputOpnum: 3OutputOpnum: 4ExecuteOpnum: 5GetMetadataOpnum: 6SetMetadataOpnum: 7Input (Opnum 3) XE "Input method"The Input method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElement in which input parameters can be specified for the specified method instance call. If the method does not support input parameters, no IAppHostElement is returned.[propget] HRESULT?Input(??[out,?retval] IAppHostElement**?ppInputElement);ppInputElement: Contains the IAppHostElement that represents the input parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Output (Opnum 4) XE "Output method"The Output method is received by the server in an RPC_REQUEST packet. In response, the server returns an IAppHostElement in which output parameters may be retrieved after the specified method instance has been executed. If the method does not support output parameters, no IAppHostElement is returned.[propget] HRESULT?Output(??[out,?retval] IAppHostElement**?ppOutputElementg);ppOutputElementg: Contains the IAppHostElement that represents the output parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Execute (Opnum 5) XE "Execute method"The Execute method is received by the server in an RPC_REQUEST packet. In response, the server actually executes the specified custom method.HRESULT?Execute();This method has no parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.GetMetaData (Opnum 6) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the specific piece of named metadata property. The metadata properties supported by this method are not mandated by this specification. The server MAY choose to support some metadata properties that are specific to its implementation. The server MAY also choose to not implement any properties.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the implementation-specific metadata being retrieved.pValue: A VARIANT that contains the metadata value.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 E_INVALIDARGOne or more parameters are incorrect or null.0X00000008 E_OUTOFMEMORYNot enough memory is available to process this command.0X80070032 ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.SetMetadata (Opnum 7) XE "SetMetadata method"The SetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server sets the specific named metadata property. The metadata properties supported by this method are not mandated by this specification. The server MAY choose to support some metadata properties that are specific to its implementation. The server MAY also choose to not implement any properties.HRESULT?SetMetadata(??[in] BSTR?bstrMetadataType,??[in] VARIANT?value);bstrMetadataType: The name of the implementation-specific metadata being set.value: A VARIANT that contains the new value of metadata.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 E_INVALIDARGOne or more parameters are incorrect or null.0X00000008 E_OUTOFMEMORYNot enough memory is available to process this command.0X80070032 ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.IAppHostMethodSchema XE "Server:IAppHostMethodSchema method" XE "IAppHostMethodSchema method" XE "Methods:IAppHostMethodSchema" The IAppHostMethodSchema interface provides methods that access the schema and constraints of the corresponding IAppHostMethod.The IAppHostMethodSchema interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3InputSchemaOpnum: 4OutputSchemaOpnum: 5GetMetadataOpnum: 6Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the specified IAppHostMethod.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the IAppHostMethod.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008E_OUTOFMEMORYNot enough memory is available to process this command.InputSchema (Opnum 4) XE "InputSchema method"The InputSchema method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints of the input parameters to the method call. This can be NULL if no input parameters are defined for the method.[propget] HRESULT?InputSchema(??[out,?retval] IAppHostElementSchema**?ppInputSchema);ppInputSchema: Contains the input parameter schema.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.OutputSchema (Opnum 5) XE "OutputSchema method"The OutputSchema method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints of the output parameters to the method call. This can be NULL if no output parameters are defined for the method.[propget] HRESULT?OutputSchema(??[out,?retval] IAppHostElementSchema**?ppOutputSchema);ppOutputSchema: Contains the output parameter schema.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.GetMetadata (Opnum 6) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the named metadata for the specified method schema. The metadata properties supported by this method are not mandated by this specification. The server MAY choose to support some metadata properties that are specific to its implementation. The server MAY also choose to not implement any properties.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata.pValue: Contains the value of the metadata.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032ERROR_NOT_SUPPORTEDThe metadata property requested by bstrMetadataType is not supported.IAppHostPathMapper XE "Server:IAppHostPathMapper method" XE "IAppHostPathMapper method" XE "Methods:IAppHostPathMapper" The IAppHostPathMapper interface provides methods that are called by the server implementation when the server informs the client about hierarchy mapping decisions.To receive incoming remote calls for this interface, the client MUST implement a UUID (e7927575-5cc3-403b-822e-328a6b904bee). It MUST then specify an object that implements this interface to the IAppHostAdminManager::SetMetadata() method with a bstrMetadataName of "pathMapper".As an administration system maps hierarchy paths to physical paths on the server, it optionally calls this client-supplied object that implements the IAppHostPathMapper interface. The implementer of this interface receives details of all mappings and can change the results of each mapping if required.The IAppHostPathMapper interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionMapPathOpnum: 3MapPath (Opnum 3) XE "MapPath method"The MapPath method is called by the server in an RPC_REQUEST packet. In response, the client implementation receives the details of the specific mapping decision and optionally, can change the results by using its return.HRESULT?MapPath(??[in] BSTR?bstrConfigPath,??[in] BSTR?bstrMappedPhysicalPath,??[out,?retval] BSTR*?pbstrNewPhysicalPath);bstrConfigPath: The hierarchy path being mapped.bstrMappedPhysicalPath: The server side physical path that the administration system has determined maps to the specified hierarchy path.pbstrNewPhysicalPath: Set to the new or updated physical path to use for the mapping. If the mapping stays the same, the client implementer returns the identical physical path that was passed in as bstrMappedPhysicalPath.Return Values: The client MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IAppHostProperty XE "Server:IAppHostProperty method" XE "IAppHostProperty method" XE "Methods:IAppHostProperty" The IAppHostProperty interface provides methods that access properties that can be contained under an IAppHostElement object.IAppHostElement objects can contain zero or more IAppHostProperty objects. These IAppHostProperty objects typically represent a single setting or attribute set on an IAppHostElement but can be multiple settings or sets.The IAppHostProperty interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3Value"getter"Opnum: 4Value"setter"Opnum: 5ClearOpnum: 6StringValueOpnum: 7ExceptionOpnum: 8GetMetadataOpnum: 9SetMetadataOpnum: 10SchemaOpnum: 11Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the specific IAppHostProperty.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Value (Get) (Opnum 4) XE "Value method"The Value (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns the value of the specified property.[propget] HRESULT?Value(??[out,?retval] VARIANT*?pVariant);pVariant: Contains the VARIANT value of the property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Value (Set) (Opnum 5) XE "Value method"The Value (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets the value of the specified property.[propput] HRESULT?Value(??[in] VARIANT?value);value: The new VARIANT value of the property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070021 ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070013 ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.Clear (Opnum 6) XE "Clear method"The Clear method is received by the server in an RPC_REQUEST packet. In response, the server clears the value of the specified property.HRESULT?Clear();This method has no parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070021 ERROR_LOCK_VIOLATIONThe instance is not editable.0X80070585 ERROR_INVALID_INDEXThe schema does not define the property being cleared.StringValue (Opnum 7) XE "StringValue method"The StringValue method is received by the server in an RPC_REQUEST packet. In response, the server returns a string representation of the value of the specified property.[propget] HRESULT?StringValue(??[out,?retval] BSTR*?pbstrValue);pbstrValue: Contains the string value that represents the property value.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrValue is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAThe property has a type that is not permitted by the schema.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Exception (Opnum 8) XE "Exception method"The Exception method is received by the server in an RPC_REQUEST packet. In response, the server returns administration system exception information that is related to the processing of the specified property.[propget] HRESULT?Exception(??[out,?retval] IAppHostPropertyException**?ppException);ppException: Contains the exception information for a specified property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppException is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null. GetMetadata (Opnum 9) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns the named metadata for the specified property.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch. Valid names are as follows.ValueMeaning"encryptionProvider"A string that represents server-specific data that defines how the property should be encrypted or decrypted on the server.string"isPropertyEncrypted"A Boolean that determines if the property is encrypted.bool"isDefaultValue"A Boolean that represents whether the specified property was explicitly set in the administration system or is a system default.bool"isInheritedFromDefault"A Boolean that represents whether the specified property was explicitly set in the administration system or is a globally defined default.bool"isLocked"A Boolean that represents whether this property can be set at deeper hierarchy paths. boolpValue: Contains the VARIANT value of the metadata property that is specified and the type depends on the property that is fetched.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032 ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.SetMetadata (Opnum 10) XE "SetMetadata method" The SetMetadata method is received by the server in an RPC_REQUEST packet.This method is used to set a metadata property.HRESULT?SetMetadata(??[in] BSTR?bstrMetadataType,??[in] VARIANT?value);bstrMetadataType: The name of the metadata to set on the property. Valid names are as follows.ValueMeaning"encryptionProvider"A string that represents server-specific data that defines how the property should be encrypted or decrypted on the server.stringvalue: The value of the metadata property to set.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585 ERROR_INVALID_INDEXThe metadata property specified by bstrMetadataType is not supported.0X80070013 ERROR_INVALID_DATAThe metadata property value has an unsupported type.0X80070032 ERROR_NOT_SUPPORTEDThe instance is not editable.Schema (Opnum 11) XE "Schema method"The Schema method is received by the server in an RPC_REQUEST packet. In response, the server returns the schema and constraints of the specified property, as defined in the IAppHostPropertySchema object that is returned.[propget] HRESULT?Schema(??[out,?retval] IAppHostPropertySchema**?ppSchema);ppSchema: Set with the IAppHostPropertySchema for the corresponding IAppHostProperty.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IAppHostPropertyCollection XE "Server:IAppHostPropertyCollection method" XE "IAppHostPropertyCollection method" XE "Methods:IAppHostPropertyCollection" The IAppHostPropertyCollection interface provides methods that access a collection of IAppHostProperty objects that are supported by a corresponding IAppHostElement.The IAppHostPropertyCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of IAppHostProperty objects that are contained in the collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains the count of the number of properties in the collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the property that is specified by the specific index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostProperty**?ppProperty);cIndex: The VARIANT index of the property to be fetched. If the VARIANT is of type integer, the index is a zero-based index to the collection. If the VARIANT is of type string, the index is a string that is the name of the property being retrieved.ppProperty: Contains the retrieved property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppProperty is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070585ERROR_INVALID_INDEXThe integer value specified by cIndex is invalid, or there is no property with a name as specified by cIndex.IAppHostPropertyException XE "Server:IAppHostPropertyException method" XE "IAppHostPropertyException method" XE "Methods:IAppHostPropertyException" The IAppHostPropertyException interface provides methods that access the exception information that the administration system encountered when processing the corresponding IAppHostProperty. The administration system can indicate errors as encountered by filling in this exception. This behavior is defined by the IAppHostAdminManager metadata "ignoreInvalidAttributes".The IAppHostPropertyException interface inherits opnums 0–9 from the IAppHostConfigException interface.Methods in RPC Opnum OrderMethodDescriptionInvalidValueOpnum: 10ValidationFailureReasonOpnum: 11ValidationFailureParametersOpnum: 12InvalidValue (Opnum 10) XE "InvalidValue method"The InvalidValue method is received by the server in an RPC_REQUEST packet. In response, the server returns a string representation of the invalid value that is encountered by the administration system when processing property.[propget] HRESULT?InvalidValue(??[out,?retval] BSTR*?pbstrValue);pbstrValue: Contains the invalid value representation.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrValue is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ValidationFailureReason (Opnum 11) XE "ValidationFailureReason method"The ValidationFailureReason method is received by the server in an RPC_REQUEST packet. In response, the server returns a description of the error that is encountered.[propget] HRESULT?ValidationFailureReason(??[out,?retval] BSTR*?pbstrValidationReason);pbstrValidationReason: Contains a description of the error.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrValidationReason is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes. Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ValidationFailureParameters (Opnum 12) XE "ValidationFailureParameters method"The ValidationFailureParameters method is currently reserved for future use. The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isnt implemented.[propget] HRESULT?ValidationFailureParameters(??[out,?retval] SAFEARRAY (VARIANT)*?pParameterArray);pParameterArray: Contains the VARIANT array of parameters that are applicable to the error.Return Values: The server MUST return ERROR_NOT_SUPPORTED (as defined in [MS-ERREF]) to indicate that the method isn't implemented.IAppHostPropertySchema XE "Server:IAppHostPropertySchema method" XE "IAppHostPropertySchema method" XE "Methods:IAppHostPropertySchema" The IAppHostPropertySchema interface provides methods that access the schema and constraints for the corresponding IAppHostProperty object.The IAppHostPropertySchema interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3TypeOpnum: 4DefaultValueOpnum: 5IsRequiredOpnum: 6IsUniqueKeyOpnum: 7IsCombinedKeyOpnum: 8IsExpandedOpnum: 9ValidationTypeOpnum: 10ValidationParameterOpnum: 11GetMetadataOpnum: 12IsCaseSensitiveOpnum: 13PossibleValuesOpnum: 14DoesAllowInfiniteOpnum: 15IsEncryptedOpnum: 16TimeSpanFormatOpnum: 17Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the corresponding IAppHostProperty.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the name of the corresponding property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Type (Opnum 4) XE "Type method"The Type method is received by the server in an RPC_REQUEST packet. In response, the server returns a string that represents the type of the property. Which types are supported is a server implementation detail.[propget] HRESULT?Type(??[out,?retval] BSTR*?pbstrType);pbstrType: Contains the string that represents the type.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrType is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAThe data is invalid. The attribute type is not supported.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.DefaultValue (Opnum 5) XE "DefaultValue method"The DefaultValue method is received by the server in an RPC_REQUEST packet. In response, the server returns the system-wide default value for the specified property, as defined by the administration system.[propget] HRESULT?DefaultValue(??[out,?retval] VARIANT*?pDefaultValue);pDefaultValue: A VARIANT that contains the system default value.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032ERROR_NOT_SUPPORTEDThe default value has a type that is not supported by the schema.IsRequired (Opnum 6) XE "IsRequired method"The IsRequired method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the specified property is required to be set on the server when the parent IAppHostElement exists.[propget] HRESULT?IsRequired(??[out,?retval] VARIANT_BOOL*?pfIsRequired);pfIsRequired: A Boolean value that states whether an attribute is required to be present in the parent IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsUniqueKey (Opnum 7) XE "IsUniqueKey method"The IsUniqueKey method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the specified property must be unique compared to all other properties of the peer collection of IAppHostElement objects. In other words, it applies only to properties that are members of the collection of IAppHostElement objects.[propget] HRESULT?IsUniqueKey(??[out,?retval] VARIANT_BOOL*?pfIsUniqueKey);pfIsUniqueKey: A Boolean value that states whether an attribute is required to be unique in the specified collection of the parent IAppHostElement.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsCombinedKey (Opnum 8) XE "IsCombinedKey method"The IsCombinedKey method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the specified property is part of a group of properties that combine to be unique compared to all other properties of peer collection IAppHostElement objects. In other words, it applies only to properties that are members of collection IAppHostElement objects.[propget] HRESULT?IsCombinedKey(??[out,?retval] VARIANT_BOOL*?pfIsCombinedKey);pfIsCombinedKey: A Boolean value that states whether an attribute is part of a combined key in the specified collection of the parent IAppHostElement object.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsExpanded (Opnum 9) XE "IsExpanded method"The IsExpanded method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the specified property supports being expanded on the server side to expand any embedded system environment variables.[propget] HRESULT?IsExpanded(??[out,?retval] VARIANT_BOOL*?pfIsExpanded);pfIsExpanded: Set to whether the specified property supports environment variable expansion.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.ValidationType (Opnum 10) XE "ValidationType method"The ValidationType method is received by the server in an RPC_REQUEST packet. In response, the server returns a string representing additional custom validation done when processing the corresponding property. The details of the validation are an implementation detail of the administration system.[propget] HRESULT?ValidationType(??[out,?retval] BSTR*?pbstrValidationType);pbstrValidationType: Set to name of validation type performed on server.Return Values: The server MUST return zero if it successfully processes the message received from the client. In this case, *pbstrValidationType is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.ValidationParameter (Opnum 11) XE "ValidationParameter method"The ValidationParameter method is received by the server in an RPC_REQUEST packet. In response, the server returns any parameter that applies to the ValidationType of the specified property. Again, this is implementation-specific.[propget] HRESULT?ValidationParameter(??[out,?retval] BSTR*?pbstrValidationParameter);pbstrValidationParameter: Set to the parameter of the validation type.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, pbstrValidationParameter is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.GetMetaData (Opnum 12) XE "GetMetadata method"The GetMetadata method is received by the server in an RPC_REQUEST packet. In response, the server returns any named metadata for the property schema.No metadata is currently associated with this interface.HRESULT?GetMetadata(??[in] BSTR?bstrMetadataType,??[out,?retval] VARIANT*?pValue);bstrMetadataType: The name of the metadata property to fetch.pValue: Returns the value of the specified metadata property, and the type depends on the property fetched.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070032 ERROR_NOT_SUPPORTEDThe metadata property specified by bstrMetadataType is not supported.IsCaseSensitive (Opnum 13) XE "IsCaseSensitive method"The IsCaseSensitive method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the corresponding property is compared to others in a case-sensitive manner, when determining equality for key (combined/unique) evaluation.[propget] HRESULT?IsCaseSensitive(??[out,?retval] VARIANT_BOOL*?pfIsCaseSensitive);pfIsCaseSensitive: A Boolean value about whether the property is treated as case-sensitive.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.PossibleValues (Opnum 14) XE "PossibleValues method"The PossibleValues method is received by the server in an RPC_REQUEST packet. In response, the server returns a collection of the possible constant values for the specified property, if applicable. The administration system determines the applicability.[propget] HRESULT?PossibleValues(??[out,?retval] IAppHostConstantValueCollection**?ppValues);ppValues: Contains the collection of possible values.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppValues is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.DoesAllowInfinite (Opnum 15) XE "DoesAllowInfinite method"The DoesAllowInfinite method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the property supports having an infinite value set.[propget] HRESULT?DoesAllowInfinite(??[out,?retval] VARIANT_BOOL*?pfAllowInfinite);pfAllowInfinite: A pointer to a Boolean value that, if set to TRUE, indicates that the property that is represented by this IAppHostPropertySchema supports infinite values.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.IsEncrypted (Opnum 16) XE "IsEncrypted method"The IsEncrypted method is received by the server in an RPC_REQUEST packet. In response, the server returns whether the corresponding IAppHostProperty should be encrypted when it is persisted in the administration system.[propget] HRESULT?IsEncrypted(??[out,?retval] VARIANT_BOOL*?pfIsEncrypted);pfIsEncrypted: A pointer to a Boolean value that, if set to TRUE, indicates that the property that is represented by this IAppHostPropertySchema will be encrypted when persisted.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.TimeSpanFormat (Opnum 17) XE "TimeSpanFormat method"The TimeSpanFormat method is received by the server in an RPC_REQUEST packet. In response, the server returns a format string that describes how the corresponding property should be formatted if property represents a time span.[propget] HRESULT?TimeSpanFormat(??[out,?retval] BSTR*?pbstrTimeSpanFormat);pbstrTimeSpanFormat: Contains the format string of the time span for the property.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrTimeSpanFormat is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057 ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008 ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013 ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.IAppHostPropertySchemaCollection XE "Server:IAppHostPropertySchemaCollection method" XE "IAppHostPropertySchemaCollection method" XE "Methods:IAppHostPropertySchemaCollection" The IAppHostPropertySchemaCollection interface provides methods that access a collection of IAppHostPropertySchema objects.The IAppHostPropertySchemaCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of the IAppHostPropertySchema objects in the specified collection.[propget] HRESULT?Count(??[out,?retval] DWORD*?pcCount);pcCount: Contains the count of the IAppHostPropertySchema objects in the collection.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostPropertySchema that is specified by the index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?cIndex,??[out,?retval] IAppHostPropertySchema**?ppPropertySchema);cIndex: A VARIANT that specifies the property schema to retrieve. If the VARIANT is of type integer, the index is the zero-based index to the collection. If the VARIANT is of type string, the index is the string name of the property schema to retrieve.ppPropertySchema: Contains the IAppHostPropertySchema that is selected.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppPropertySchema is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070585ERROR_INVALID_INDEXThe integer index specified by cIndex is invalid, or the IappHostPropertySchema instance with name specified by cIndex could not be found.IAppHostSectionDefinition XE "Server:IAppHostSectionDefinition method" XE "IAppHostSectionDefinition method" XE "Methods:IAppHostSectionDefinition" The IAppHostSectionDefinition interface provides methods that access a declaration of the IAppHostElement object that is supported by the administration system. A declaration is distinct from the existence of an IAppHostElement in the administration system.The IAppHostSectionDefinition interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionNameOpnum: 3Type"getter"Opnum: 4Type"setter"Opnum: 5OverrideModeDefault"getter"Opnum: 6OverrideModeDefault"setter"Opnum: 7AllowDefinition"getter"Opnum: 8AllowDefinition"setter"Opnum: 9AllowLocation"getter"Opnum: 10AllowLocation"setter"Opnum: 11Name (Opnum 3) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the IAppHostElement being declared.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: The name of the IAppHostElement being declared.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Type (Get) (Opnum 4) XE "Type method"The Type (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns a string that represents an implementation-specific type name for the declaration.[propget] HRESULT?Type(??[out,?retval] BSTR*?pbstrType);pbstrType: Set to the type of the section.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrType is not NULL. If processing fails. the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Type (Set) (Opnum 5) XE "Type method"The Type (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets the type name of a specified declaration.[propput] HRESULT?Type(??[in] BSTR?bstrType);bstrType: The type name to set for the declaration.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.OverrideModeDefault (Get) (Opnum 6) XE "OverrideModeDefault method"The OverrideModeDefault (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns an implementation-specific override behavior string for the declaration.[propget] HRESULT?OverrideModeDefault(??[out,?retval] BSTR*?pbstrOverrideModeDefault);pbstrOverrideModeDefault: Contains the string that represents the override behavior.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, the pbstrOverrideModeDefault parameter is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.OverrideModeDefault (Set) (Opnum 7) XE "OverrideModeDefault method"The OverrideModeDefault (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets an implementation-specific override behavior string for the declaration.[propput] HRESULT?OverrideModeDefault(??[in] BSTR?bstrOverrideModeDefault);bstrOverrideModeDefault: The override behavior string.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.AllowDefinition (Get) (Opnum 8) XE "AllowDefinition method"The AllowDefinition (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns an implementation-specific string that defines where the specified declaration can apply in the administration system.[propget] HRESULT?AllowDefinition(??[out,?retval] BSTR*?pbstrAllowDefinition);pbstrAllowDefinition: Contains the value that defines where the specified declaration can apply in the administration system.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrAllowDefinition is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.AllowDefinition (Set) (Opnum 9) XE "AllowDefinition method"The AllowDefinition (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets an implementation-specific string that defines where the specified declaration can apply in the administration system.[propput] HRESULT?AllowDefinition(??[in] BSTR?bstrAllowDefinition);bstrAllowDefinition: A value that defines where the specified declaration can apply in the administration system.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.AllowLocation (Get) (Opnum 10) XE "AllowLocation method"The AllowLocation (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns an implementation-specific string that defines whether the declared IAppHostElement can exist in subpaths within an IAppHostConfigFile.[propget] HRESULT?AllowLocation(??[out,?retval] BSTR*?pbstrAllowLocation);pbstrAllowLocation: Contains the subpath behavior.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrAllowLocation is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.AllowLocation (Set) (Opnum 11) XE "AllowLocation method"The AllowLocation (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets an implementation-specific string that defines whether the declared IAppHostElement can exist in subpaths within an IAppHostConfigFile.[propput] HRESULT?AllowLocation(??[in] BSTR?bstrAllowLocation);bstrAllowLocation: The subpath behavior to set.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.IAppHostSectionDefinitionCollection XE "Server:IAppHostSectionDefinitionCollection method" XE "IAppHostSectionDefinitionCollection method" XE "Methods:IAppHostSectionDefinitionCollection" The IAppHostSectionDefinitionCollection interface provides methods that access a collection of IAppHostSectionDefinition objects.The IAppHostSectionDefinitionCollection interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4AddSectionOpnum: 5DeleteSectionOpnum: 6Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns the count of the IAppHostSectionDefinition objects in the collection.[propget] HRESULT?Count(??[out,?retval] unsigned long*?pcCount);pcCount: Contains the count of the IAppHostSectionDefinition objects.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns the IAppHostSectionDefinition object that is specified in the index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?varIndex,??[out,?retval] IAppHostSectionDefinition**?ppConfigSection);varIndex: A VARIANT that specifies the section definition to retrieve. If the VARIANT is of type integer, the index is the zero-based index to the collection. If the VARIANT is of type string, the index is the string name of the section definition.ppConfigSection: Contains the specified section definition.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppConfigSection is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070585ERROR_INVALID_INDEXThe integer index specified by varIndex is invalid, or the element with name specified by varIndex could not be found.AddSection (Opnum 5) XE "AddSection method"The AddSection method is received by the server in an RPC_REQUEST packet. In response, the server adds a section definition to the administration system.HRESULT?AddSection(??[in] BSTR?bstrSectionName,??[out,?retval] IAppHostSectionDefinition**?ppConfigSection);bstrSectionName: The name of the new section definition to add.ppConfigSection: Contains the newly added or created section definition.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppConfigSection is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X800700B7ERROR_ALREADY_EXISTSA section with name bstrSectionName already exists.DeleteSection (Opnum 6) XE "DeleteSection method"The DeleteSection method is received by the server in an RPC_REQUEST packet. In response, the server deletes the specified section definition.HRESULT?DeleteSection(??[in] VARIANT?varIndex);varIndex: A VARIANT index that specifies the section definition to delete. If the VARIANT is of type integer, the index is a zero-based index to the collection. If the VARIANT is of type string, the index is the string name of the section definition.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070585ERROR_INVALID_INDEXThe integer index specified by varIndex is invalid, or the section with name specified by cIndex could not be found.0X80070021ERROR_LOCK_VIOLATIONThe instance is set to read-only.0X00000002ERROR_PATH_NOT_FOUNDThe system cannot find the path specified.The section could not be found.IAppHostSectionGroup XE "Server:IAppHostSectionGroup method" XE "IAppHostSectionGroup method" XE "Methods:IAppHostSectionGroup" The IAppHostSectionGroup interface provides methods that access a group of section definitions that have a common prefix name.The IAppHostSectionGroup interface inherits opnums 0–2 from the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCountOpnum: 3ItemOpnum: 4SectionsOpnum: 5AddSectionGroupOpnum: 6DeleteSectionGroupOpnum: 7NameOpnum: 8Type"getter"Opnum: 9Type"setter"Opnum: 10Count (Opnum 3) XE "Count method"The Count method is received by the server in an RPC_REQUEST packet. In response, the server returns a count of child section groups that are contained in the specified section group.[propget] HRESULT?Count(??[out,?retval] unsigned long*?pcSectionGroup);pcSectionGroup: Contains the count of section groups in the collection array.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.Item (Opnum 4) XE "Item method"The Item method is received by the server in an RPC_REQUEST packet. In response, the server returns a section group that matches the specified index.[propget,?id(DISPID_VALUE)] HRESULT?Item(??[in] VARIANT?varIndex,??[out,?retval] IAppHostSectionGroup**?ppSectionGroup);varIndex: A VARIANT index that specifies the section group. If it is of type integer, the index is a zero-based index to the collection. If it is of type string, the index is the name of the section group to retrieve.ppSectionGroup: Contains the selected IAppHostSectionGroup.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSectionGroup is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table below describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070585ERROR_INVALID_INDEXThe integer index specified by varIndex is invalid, or the section group with name specified by varIndex could not be found.Sections (Opnum 5) XE "Sections method"The Sections method is received by the server in an RPC_REQUEST packet. In response, the server returns a collection of section definitions in the specified section group.[propget] HRESULT?Sections(??[out,?retval] IAppHostSectionDefinitionCollection**?ppSections);ppSections: Contains the collection of section definitions.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSections is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.AddSectionGroup (Opnum 6) XE "AddSectionGroup method"The AddSectionGroup method is received by the server in an RPC_REQUEST packet. In response, the server adds a new section group to the specified section group.HRESULT?AddSectionGroup(??[in] BSTR?bstrSectionGroupName,??[out,?retval] IAppHostSectionGroup**?ppSectionGroup);bstrSectionGroupName: A string that contains the name of the section group to add.ppSectionGroup: Contains the pointer to the newly created section group.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *ppSectionGroup is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X800700B7ERROR_ALREADY_EXISTSA section group with name bstrSectionGroupName already exists.DeleteSectionGroup (Opnum 7) XE "DeleteSectionGroup method"The DeleteSectionGroup method is received by the server in an RPC_REQUEST packet. In response, the server deletes the specified section group.HRESULT?DeleteSectionGroup(??[in] VARIANT?varIndex);varIndex: A VARIANT index that specifies the section group. If it is of type integer, the index is a zero-based index to the collection. If it is of type string, the index is the name of the section group to retrieve.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070585ERROR_INVALID_INDEXThe integer index specified by varIndex is invalid, or the section group with name specified by cIndex could not be found.0X80070021ERROR_LOCK_VIOLATIONThe instance is not editable.Name (Opnum 8) XE "Name method"The Name method is received by the server in an RPC_REQUEST packet. In response, the server returns the name of the specified section group.[propget] HRESULT?Name(??[out,?retval] BSTR*?pbstrName);pbstrName: Contains the string that contains the name of the section group.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrName is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Type (Get) (Opnum 9) XE "Type method"The Type (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns an implementation-specific type string for the specified section group.[propget] HRESULT?Type(??[out,?retval] BSTR*?pbstrType);pbstrType: Contains the string that contains the type string for the section group.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrType is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Type (Set) (Opnum 10) XE "Type method"The Type (Set) method is received by the server in an RPC_REQUEST packet. In response, the server sets the implementation-specific type string for the specified section group.[propput] HRESULT?Type(??[in] BSTR?bstrType);bstrType: The string that contains the type of the section group.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.IAppHostWritableAdminManager XE "Server:IAppHostWritableAdminManager method" XE "IAppHostWritableAdminManager method" XE "Methods:IAppHostWritableAdminManager" The IAppHostWritableAdminManager interface provides methods that access a writable version of an administration system. It extends the IAppHostAdminManager, which is a read-only interface. The IAppHostWritableAdminManager adds methods to allow writing to the administration system, the most important of which is the CommitChanges method, which instructs the administration system to persist any in-memory changes that it may have accumulated.The IAppHostWritableAdminManager interface inherits opnums 0–6 from the IAppHostAdminManager interface, as defined in this protocol specification and the IUnknown interface.Methods in RPC Opnum OrderMethodDescriptionCommitChangesOpnum: 7CommitPath"getter"Opnum: 8CommitPath"setter"Opnum: 9CommitChanges (Opnum 7) XE "CommitChanges method"The CommitChanges method is received by the server in an RPC_REQUEST packet. In response, the server commits any in-memory changes that it accumulates to a persisted store. This behavior essentially writes out the changes that are made by the client.HRESULT?CommitChanges();This method has no parameters.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.0X80070013ERROR_INVALID_DATAConfiguration data or schema on the server are malformed or corrupted.0X00000002ERROR_PATH_NOT_FOUNDThe system cannot find the path specified.0X80070002ERROR_FILE_NOT_FOUNDThe system cannot find the file specified.0X80070005ERROR_ACCESS_DENIEDAccess is mitPath (Get) (Opnum 8) XE "CommitPath method"The CommitPath (Get) method is received by the server in an RPC_REQUEST packet. In response, the server returns the hierarchy path that the administration system writes changes to after having its CommitChanges method called.[propget] HRESULT?CommitPath(??[out,?retval] BSTR*?pbstrCommitPath);pbstrCommitPath: Contains the hierarchy path where changes are committed.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. In this case, *pbstrCommitPath is not NULL. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETEROne or more parameters are incorrect or null.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this mitPath (Set) (Opnum 9) XE "CommitPath method"The CommitPath (Set) method is received by the server in an RPC_REQUEST packet. In response, the server changes the hierarchy path where changes are committed.[propput] HRESULT?CommitPath(??[in] BSTR?bstrCommitPath);bstrCommitPath: The new hierarchy path to commit changes to.Return Values: The server MUST return zero if it successfully processes the message that is received from the client. If processing fails, the server MUST return a nonzero HRESULT code as defined in [MS-ERREF]. The following table describes the error conditions that MUST be handled and the corresponding error codes. A server MAY return additional implementation-specific error codes.Return value/codeDescription0X00000000NO_ERRORThe operation completed successfully.0X80070057ERROR_INVALID_PARAMETERThe parameter is incorrect. The commit path is invalid.0x800700ddERROR_FILE_CHECKED_OUTThe commit path cannot be set because there are some pending changes that have not been committed yet.0X00000008ERROR_NOT_ENOUGH_MEMORYNot enough memory is available to process this command.Timer Events XE "Server:timer events" XE "Timer events:server" XE "Events:timer - server" XE "Timer events - server" XE "Server:timer events"None.Other Local Events XE "Server:local events" XE "Local events:server" XE "Events:local - server" XE "Local events - server" XE "Server:local events"None.Protocol Examples XE "Examples:overview" XE "Examples:overview"This section shows examples of client use of this protocol. All examples are shown in JScript development software; however, any client scripting or programming language that can create and manipulate DCOM objects can be used.For more information and sample usage of the protocol by a client, see [MSDN-IIS7AH].Create an AppHostAdminManager Locally XE "Examples:create an apphostadminmanager locally" XE "Create an apphostadminmanager locally example" XE "Creating AppHostAdminManager locally - example" XE "Examples:creating AppHostAdminManager locally"var adminManager = WScript.CreateObject("Microsoft.ApplicationHost.AdminManager" );Get Metadata: Get the overrideMode of a defaultDocument Section XE "Examples:get metadata\: get the overridemode of a defaultdocument section" XE "Get metadata\: get the overridemode of a defaultdocument section example" XE "Getting metadata example" XE "Examples:getting metadata"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var overrideMode = configSection.GetMetadata( "overrideMode" );/* WScript.Echo(overrideMode); */Set Metadata: Set the overrideMode of the defaultDocument Section XE "Examples:set metadata\: set the overridemode of the defaultdocument section" XE "Set metadata\: set the overridemode of the defaultdocument section example" XE "Setting metadata example" XE "Examples:setting metadata"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument","MACHINE/WEBROOT/APPHOST" );configSection.SetMetadata( "overrideMode", "Deny" );mitChanges();Create a New Configuration Section Entry in the configSections Section XE "Examples:create a new configuration section entry in the configsections section" XE "Create a new configuration section entry in the configsections section example" XE "Creating configuration section entry - example" XE "Examples:creating configuration section entry"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager");mitPath = "MACHINE/WEBROOT/APPHOST";var configFile = adminManager.ConfigManager.GetConfigFile("MACHINE/WEBROOT/APPHOST");var sectionGroupTable = configFile.RootSectionGroup;if ( sectionGroupTable != null ){ try { var sectionGroup = sectionGroupTable.Item("system.webServer"); } catch ( exception ) { var sectionGroup = null; }}if ( sectionGroup == null ){ sectionGroup=sectionGroupTable.AddSectionGroup("system.webServer");}var configSection=sectionGroup.Sections.AddSection("NewSectionGroup");mitChanges();Get a Section for Read Access: The defaultDocument Section XE "Examples:get a section for read access\: the defaultdocument section" XE "Get a section for read access\: the defaultdocument section example" XE "Getting section for read access example" XE "Examples:getting section for read access"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument","MACHINE/WEBROOT/APPHOST" );Get a Property: Get the Enabled Property of the defaultDocument Section XE "Examples:get a property\: get the enabled property of the defaultdocument section" XE "Get a property\: get the enabled property of the defaultdocument section example" XE "Getting property example" XE "Examples:getting property"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var isEnabled = configSection.Properties.Item( "enabled" ).Value;Get a Section: Get the anonymousAuthentication Section XE "Examples:get a section\: get the anonymousauthentication section" XE "Get a section\: get the anonymousauthentication section example" XE "Getting section example" XE "Examples:getting section"To get the anonymousAuthentication section:var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication","MACHINE/WEBROOT/APPHOST" );To get a child element:var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var filesElement = configSection.GetElementByName( "files" );List the Entries of a Collection XE "Examples:list the entries of a collection" XE "List the entries of a collection example" XE "Listing entries of collection - example" XE "Examples:listing entries of collection"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var collection = configSection.GetElementByName( "files" ).Collection;for ( var i = 0; i < collection.Count; i++ ){ WScript.Echo( "file name = " + collection.Item( i ).Properties.Item( "value" ).Value );}Remove an Entry of a Collection XE "Examples:remove an entry of a collection" XE "Remove an entry of a collection example" XE "Removing entry of collection - example" XE "Examples:removing entry of collection"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var collection = configSection.GetElementByName( "files" ).Collection;if ( collection.Count > 0 ){ collection.DeleteElement( 0 );}mitChanges();Edit the Configuration of APPHOST in a Location Tag XE "Examples:edit the configuration of apphost in a location tag" XE "Edit the configuration of apphost in a location tag example" XE "Editing APPHOST configuration in location tag - example" XE "Examples:editing APPHOST configuration in location tag"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/urlCompression", "MACHINE/WEBROOT/APPHOST/Default Web Site" );configSection.Properties.Item( "doDynamicCompression" ).Value = true;mitChanges();Read Schema Information: Determine If IsMergeAppend Is Set in the defaultDocuments Section XE "Examples:read schema information\: determine if ismergeappend is set in the defaultdocuments section" XE "Read schema information\: determine if ismergeappend is set in the defaultdocuments section example" XE "Reading schema information example" XE "Examples:reading schema information"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var isMergeAppend = configSection.GetElementByName( "files" ).Collection.Schema.IsMergeAppend;Get a Section for Write: Get the defaultDocument Section and Toggle the Enabled Attribute XE "Examples:get a section for write\: get the defaultdocument section and toggle the enabled attribute" XE "Get a section for write\: get the defaultdocument section and toggle the enabled attribute example" XE "Getting section for write example" XE "Examples:getting section for write"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );configSection.Properties.Item( "enabled" ).Value = true;mitChanges();Write into a Collection: Clear the Contents of the defaultDocument Section for Site1 XE "Examples:write into a collection\: clear the contents of the defaultdocument section for site1" XE "Write into a collection\: clear the contents of the defaultdocument section for site1 example" XE "Writing into collection example:clearing contents" XE "Examples:writing into collection:clearing contents"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument","MACHINE/WEBROOT/APPHOST" );configSection.GetElementByName( "files" ).Collection.Clear();mitChanges();Write into a Collection: Add an Entry for the defaultDocument Section for Site1 as a Location Tag XE "Examples:write into a collection\: add an entry for the defaultdocument section for site1 as a location tag" XE "Write into a collection\: add an entry for the defaultdocument section for site1 as a location tag example" XE "Writing into collection example:adding entry as location tag" XE "Examples:writing into collection:adding entry as location tag"var adminManager = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );mitPath = "MACHINE/WEBROOT/APPHOST";var configSection = adminManager.GetAdminSection( "system.webServer/defaultDocument", "MACHINE/WEBROOT/APPHOST" );var collection = configSection.GetElementByName( "files" ).Collection;var newElement = collection.CreateNewElement( "add" );newElement.Properties.Item( "value" ).Value = "newdefdoc.htm";collection.AddElement( newElement );mitChanges();SecuritySecurity Considerations for Implementers XE "Security:implementer considerations" XE "Implementer - security considerations" XE "Implementer - security considerations" XE "Security:implementer considerations"Implementers MAY enforce security as specified in [C706].Implementers SHOULD review the security considerations as specified in [MS-RPCE].Index of Security Parameters XE "Security:parameter index" XE "Index of security parameters" XE "Parameters - security index" XE "Parameters - security index" XE "Index of security parameters" XE "Security:parameter index"None.Appendix A: Full IDL XE "IDL" XE "Full IDL" For ease of implementation, the full IDL is provided where "ms-dtyp.idl" refers to the IDL found in [MS-DTYP], "ms-dcom.idl" is the IDL specified in [MS-DCOM], Appendix A, and "ms-oaut.idl" is the IDL that is specified in [MS-OAUT] Appendix A.import "ms-dtyp.idl";import "ms-dcom.idl";import "ms-oaut.idl";#define stringinterface IAppHostMethod;interface IAppHostMethodInstance;interface IAppHostElement;interface IAppHostProperty;interface IAppHostConfigLocation;interface IAppHostElementSchema;interface IAppHostPropertySchema;interface IAppHostConstantValue;interface IAppHostConfigManager;#define SAFEARRAY(x) SAFEARRAY[ object, uuid( 31a83ea0-c0e4-4a2c-8a01-353cc2a4c60a ), pointer_default( unique ), helpstring( "IAppHostMappingExtension" )]interface IAppHostMappingExtension : IUnknown{ HRESULT GetSiteNameFromSiteId( [in] DWORD dwSiteId, [out, retval] BSTR * pbstrSiteName ); HRESULT GetSiteIdFromSiteName( [in] BSTR bstrSiteName, [out, retval] DWORD * pdwSiteId ); HRESULT GetSiteElementFromSiteId( [in] DWORD dwSiteId, [out, retval] IAppHostElement ** ppSiteElement ); HRESULT MapPath( [in] BSTR bstrSiteName, [in] BSTR bstrVirtualPath, [out] BSTR * pbstrPhysicalPath, [out] IAppHostElement ** ppVirtualDirectoryElement, [out] IAppHostElement ** ppApplicationElement );};[ object, uuid( 08a90f5f-0702-48d6-b45f-02a9885a9768 ), pointer_default( unique ), helpstring( "IAppHostChildElementCollection" )]interface IAppHostChildElementCollection : IUnknown{ [propget]HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostElement ** ppElement );}[ object, uuid( 0191775e-bcff-445a-b4f4-3bdda54e2816 ), pointer_default( unique ), helpstring( "IAppHostPropertyCollection" )]interface IAppHostPropertyCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostProperty ** ppProperty ); }[ object, uuid( 832a32f7-b3ea-4b8c-b260-9a2923001184 ), pointer_default( unique ), helpstring( "IAppHostConfigLocationCollection" )]interface IAppHostConfigLocationCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] IAppHostConfigLocation ** ppLocation ); HRESULT AddLocation( [in] BSTR bstrLocationPath, [out, retval] IAppHostConfigLocation ** ppNewLocation ); HRESULT DeleteLocation( [in] VARIANT cIndex );}[ object, uuid( d6c7cd8f-bb8d-4f96-b591-d3a5f1320269 ), pointer_default( unique ), helpstring( "IAppHostMethodCollection" )]interface IAppHostMethodCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostMethod ** ppMethod );}[ object, uuid( 0344cdda-151e-4cbf-82da-66ae61e97754 ), pointer_default( unique ), helpstring( "IAppHostElementSchemaCollection" )]interface IAppHostElementSchemaCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostElementSchema ** ppElementSchema );}[ object, uuid( 8bed2c68-a5fb-4b28-8581-a0dc5267419f ), pointer_default( unique ), helpstring( "IAppHostPropertySchemaCollection" )]interface IAppHostPropertySchemaCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostPropertySchema ** ppPropertySchema );}[ object, uuid( 5b5a68e6-8b9f-45e1-8199-a95ffccdffff ), pointer_default( unique ), helpstring( "IAppHostConstantValueCollection" )]interface IAppHostConstantValueCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostConstantValue ** ppConstantValue );}[ object, uuid( 0716caf8-7d05-4a46-8099-77594be91394 ), pointer_default( unique ), helpstring( "IAppHostConstantValue" )]interface IAppHostConstantValue : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Value( [out, retval] DWORD * pdwValue );}[ object, uuid( 450386db-7409-4667-935e-384dbbee2a9e ), pointer_default( unique ), helpstring( "IAppHostPropertySchema" )]interface IAppHostPropertySchema : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Type( [out, retval] BSTR * pbstrType ); [propget] HRESULT DefaultValue( [out, retval] VARIANT * pDefaultValue ); [propget] HRESULT IsRequired( [out, retval] VARIANT_BOOL * pfIsRequired ); [propget] HRESULT IsUniqueKey( [out, retval] VARIANT_BOOL * pfIsUniqueKey ); [propget] HRESULT IsCombinedKey( [out, retval] VARIANT_BOOL * pfIsCombinedKey ); [propget] HRESULT IsExpanded( [out, retval] VARIANT_BOOL * pfIsExpanded ); [propget] HRESULT ValidationType( [out, retval] BSTR * pbstrValidationType ); [propget] HRESULT ValidationParameter( [out, retval] BSTR * pbstrValidationParameter ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); [propget] HRESULT IsCaseSensitive( [out, retval] VARIANT_BOOL * pfIsCaseSensitive ); [propget] HRESULT PossibleValues( [out, retval] IAppHostConstantValueCollection ** ppValues ); [propget] HRESULT DoesAllowInfinite( [out, retval] VARIANT_BOOL * pfAllowInfinite ); [propget] HRESULT IsEncrypted( [out, retval] VARIANT_BOOL * pfIsEncrypted ); [propget] HRESULT TimeSpanFormat( [out, retval] BSTR * pbstrTimeSpanFormat );}[ object, uuid( de095db1-5368-4d11-81f6-efef619b7bcf ), pointer_default( unique ), helpstring( "IAppHostCollectionSchema" )]interface IAppHostCollectionSchema : IUnknown{ [propget] HRESULT AddElementNames( [out, retval] BSTR * pbstrElementName ); HRESULT GetAddElementSchema( [in] BSTR bstrElementName, [out, retval] IAppHostElementSchema ** ppSchema ); [propget] HRESULT RemoveElementSchema( [out, retval] IAppHostElementSchema ** ppSchema ); [propget] HRESULT ClearElementSchema( [out, retval] IAppHostElementSchema ** ppSchema ); [propget] HRESULT IsMergeAppend( [out, retval] VARIANT_BOOL * pfIsMergeAppend ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); [propget] HRESULT DoesAllowDuplicates( [out, retval] VARIANT_BOOL * pfAllowDuplicates );}[ object, uuid( ef13d885-642c-4709-99ec-b89561c6bc69 ), pointer_default( unique ), helpstring( "IAppHostElementSchema" )]interface IAppHostElementSchema : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT DoesAllowUnschematizedProperties( [out, retval] VARIANT_BOOL * pfAllowUnschematized ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); [propget] HRESULT CollectionSchema( [out, retval] IAppHostCollectionSchema ** ppCollectionSchema ); [propget] HRESULT ChildElementSchemas( [out, retval] IAppHostElementSchemaCollection ** ppChildSchemas ); [propget] HRESULT PropertySchemas( [out, retval] IAppHostPropertySchemaCollection ** ppPropertySchemas ); [propget] HRESULT IsCollectionDefault( [out, retval] VARIANT_BOOL * pfIsCollectionDefault );}[ object, uuid( 2d9915fb-9d42-4328-b782-1b46819fab9e ), pointer_default( unique ), helpstring( "IAppHostMethodSchema" )]interface IAppHostMethodSchema : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT InputSchema( [out, retval] IAppHostElementSchema ** ppInputSchema ); [propget] HRESULT OutputSchema( [out, retval] IAppHostElementSchema ** ppOutputSchema ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue );}[ object, uuid( b80f3c42-60e0-4ae0-9007-f52852d3dbed ), pointer_default( unique ), helpstring( "IAppHostMethodInstance" )]interface IAppHostMethodInstance : IUnknown{ [propget] HRESULT Input( [out, retval] IAppHostElement ** ppInputElement ); [propget] HRESULT Output( [out, retval] IAppHostElement ** ppOutputElement ); HRESULT Execute(); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); HRESULT SetMetadata( [in] BSTR bstrMetadataType, [in] VARIANT value );}[ object, uuid( 7883ca1c-1112-4447-84c3-52fbeb38069d ), pointer_default( unique ), helpstring( "IAppHostMethod" )]interface IAppHostMethod : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Schema( [out, retval] IAppHostMethodSchema ** ppMethodSchema ); HRESULT CreateInstance( [out, retval] IAppHostMethodInstance ** ppMethodInstance );}[ object, uuid( 4dfa1df3-8900-4bc7-bbb5-d1a458c52410 ), pointer_default( unique ), helpstring( "IAppHostConfigException" )]interface IAppHostConfigException : IUnknown{ [propget] HRESULT LineNumber( [out, retval] unsigned long * pcLineNumber ); [propget] HRESULT FileName( [out, retval] BSTR * pbstrFileName ); [propget] HRESULT ConfigPath( [out, retval] BSTR * pbstrConfigPath ); [propget] HRESULT ErrorLine( [out, retval] BSTR * pbstrErrorLine ); [propget] HRESULT PreErrorLine( [out, retval] BSTR * pbstrPreErrorLine ); [propget] HRESULT PostErrorLine( [out, retval] BSTR * pbstrPostErrorLine ); [propget] HRESULT ErrorString( [out, retval] BSTR * pbstrErrorString );}[ object, uuid( eafe4895-a929-41ea-b14d-613e23f62b71 ), pointer_default( unique ), helpstring( "IAppHostPropertyException" )]interface IAppHostPropertyException : IAppHostConfigException{ [propget] HRESULT InvalidValue( [out, retval] BSTR * pbstrValue ); [propget] HRESULT ValidationFailureReason( [out, retval] BSTR * pbstrValidationReason ); [propget] HRESULT ValidationFailureParameters( [out, retval] SAFEARRAY(VARIANT) * pParameterArray );}[ object, uuid( c8550bff-5281-4b1e-ac34-99b6fa38464d ), pointer_default( unique ), helpstring( "IAppHostElementCollection" )]interface IAppHostElementCollection : IUnknown{ [propget] HRESULT Count( [out, retval] DWORD * pcElementCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostElement ** ppElement ); HRESULT AddElement( [in] IAppHostElement * pElement, [in, defaultvalue(-1)] int cPosition ); HRESULT DeleteElement( [in] VARIANT cIndex ); HRESULT Clear(); HRESULT CreateNewElement( [in, defaultvalue("")] BSTR bstrElementName, [out, retval] IAppHostElement ** ppElement ); [propget] HRESULT Schema( [out, retval] IAppHostCollectionSchema** ppSchema );}[ object, uuid( 64ff8ccc-b287-4dae-b08a-a72cbf45f453 ), pointer_default( unique ), helpstring( "IAppHostElement" )]interface IAppHostElement : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Collection( [out, retval] IAppHostElementCollection ** ppCollection ); [propget] HRESULT Properties( [out, retval] IAppHostPropertyCollection ** ppProperties ); [propget] HRESULT ChildElements( [out, retval] IAppHostChildElementCollection ** ppElements ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); HRESULT SetMetadata( [in] BSTR bstrMetadataType, [in] VARIANT value ); [propget] HRESULT Schema( [out, retval] IAppHostElementSchema ** ppSchema ); HRESULT GetElementByName( [in] BSTR bstrSubName, [out, retval] IAppHostElement ** ppElement ); HRESULT GetPropertyByName( [in] BSTR bstrSubName, [out, retval] IAppHostProperty ** ppProperty ); HRESULT Clear(); [propget] HRESULT Methods( [out, retval] IAppHostMethodCollection ** ppMethods );}[ object, uuid( ed35f7a1-5024-4e7b-a44d-07ddaf4b524d ), pointer_default( unique ), helpstring( "IAppHostProperty" )]interface IAppHostProperty : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Value( [out, retval] VARIANT * pVariant ); [propput] HRESULT Value( [in] VARIANT value ); HRESULT Clear(); [propget] HRESULT StringValue( [out, retval] BSTR * pbstrValue ); [propget] HRESULT Exception( [out, retval] IAppHostPropertyException ** ppException ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); HRESULT SetMetadata( [in] BSTR bstrMetadataType, [in] VARIANT value ); [propget] HRESULT Schema( [out, retval] IAppHostPropertySchema ** ppSchema );}[ object, uuid( 370af178-7758-4dad-8146-7391f6e18585 ), pointer_default( unique ), helpstring( "IAppHostConfigLocation" )]interface IAppHostConfigLocation : IUnknown{ [propget] HRESULT Path( [out, retval] BSTR * pbstrLocationPath ); [propget] HRESULT Count( [out, retval] DWORD * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT cIndex, [out, retval] IAppHostElement ** ppSection ); HRESULT AddConfigSection( [in] BSTR bstrSectionName, [out, retval] IAppHostElement ** ppAdminElement ); HRESULT DeleteConfigSection( [in] VARIANT cIndex );}[ object, uuid( c5c04795-321c-4014-8fd6-d44658799393 ), pointer_default( unique ), helpstring( "IAppHostSectionDefinition" )]interface IAppHostSectionDefinition : IUnknown{ [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Type( [out, retval] BSTR * pbstrType ); [propput] HRESULT Type( [in] BSTR bstrType ); [propget] HRESULT OverrideModeDefault( [out, retval] BSTR * pbstrOverrideModeDefault ); [propput] HRESULT OverrideModeDefault( [in] BSTR bstrOverrideModeDefault ); [propget] HRESULT AllowDefinition( [out, retval] BSTR * pbstrAllowDefinition ); [propput] HRESULT AllowDefinition( [in] BSTR bstrAllowDefinition ); [propget] HRESULT AllowLocation( [out, retval] BSTR * pbstrAllowLocation ); [propput] HRESULT AllowLocation( [in] BSTR bstrAllowLocation );}[ object, uuid( b7d381ee-8860-47a1-8af4-1f33b2b1f325 ), pointer_default( unique ), helpstring( "IAppHostSectionDefinitionCollection" )]interface IAppHostSectionDefinitionCollection : IUnknown{ [propget] HRESULT Count( [out, retval] unsigned long * pcCount ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] IAppHostSectionDefinition ** ppConfigSection ); HRESULT AddSection( [in] BSTR bstrSectionName, [out, retval] IAppHostSectionDefinition ** ppConfigSection ); HRESULT DeleteSection( [in] VARIANT varIndex ); }[ object, uuid( 0dd8a158-ebe6-4008-a1d9-b7ecc8f1104b ), pointer_default( unique ), helpstring( "IAppHostSectionGroup" )]interface IAppHostSectionGroup : IUnknown{ [propget] HRESULT Count( [out, retval] unsigned long * pcSectionGroup ); [propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] IAppHostSectionGroup ** ppSectionGroup ); [propget] HRESULT Sections( [out, retval] IAppHostSectionDefinitionCollection ** ppSections ); HRESULT AddSectionGroup( [in] BSTR bstrSectionGroupName, [out, retval] IAppHostSectionGroup ** ppSectionGroup ); HRESULT DeleteSectionGroup( [in] VARIANT varIndex ); [propget] HRESULT Name( [out, retval] BSTR * pbstrName ); [propget] HRESULT Type( [out, retval] BSTR * pbstrType ); [propput] HRESULT Type( [in] BSTR bstrType );}[ object, uuid( ada4e6fb-e025-401e-a5d0-c3134a281f07 ), pointer_default( unique ), helpstring( "IAppHostConfigFile" )]interface IAppHostConfigFile : IUnknown{ [propget] HRESULT ConfigPath( [out, retval] BSTR * pbstrConfigPath ); [propget] HRESULT FilePath( [out, retval] BSTR * pbstrFilePath ); [propget] HRESULT Locations( [out, retval] IAppHostConfigLocationCollection ** ppLocations ); HRESULT GetAdminSection( [in] BSTR bstrSectionName, [in] BSTR bstrPath, [out, retval] IAppHostElement ** ppAdminSection ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); HRESULT SetMetadata( [in] BSTR bstrMetadataType, [in] VARIANT value ); HRESULT ClearInvalidSections(); [propget] HRESULT RootSectionGroup( [out, retval] IAppHostSectionGroup ** ppSectionGroups );}[ object, uuid( e7927575-5cc3-403b-822e-328a6b904bee ), pointer_default( unique ), helpstring( "IAppHostPathMapper" )]interface IAppHostPathMapper : IUnknown{ HRESULT MapPath( [in] BSTR bstrConfigPath, [in] BSTR bstrMappedPhysicalPath, [out, retval] BSTR * pbstrNewPhysicalPath );}[ object, uuid( 09829352-87c2-418d-8d79-4133969a489d ), pointer_default( unique ), helpstring( "IAppHostChangeHandler" )]interface IAppHostChangeHandler : IUnknown{ HRESULT OnSectionChanges( [in] BSTR bstrSectionName, [in] BSTR bstrConfigPath );}[ object, uuid( 9be77978-73ed-4a9a-87fd-13f09fec1b13 ), pointer_default( unique ), helpstring( "IAppHostAdminManager Interface" )]interface IAppHostAdminManager : IUnknown{ HRESULT GetAdminSection( [in] BSTR bstrSectionName, [in] BSTR bstrPath, [out, retval] IAppHostElement ** ppAdminSection ); HRESULT GetMetadata( [in] BSTR bstrMetadataType, [out, retval] VARIANT * pValue ); HRESULT SetMetadata( [in] BSTR bstrMetadataType, [in] VARIANT value ); [propget] HRESULT ConfigManager( [out, retval] IAppHostConfigManager ** ppConfigManager );}[ object, uuid( fa7660f6-7b3f-4237-a8bf-ed0ad0dcbbd9 ), pointer_default( unique ), helpstring( "IAppHostWritableAdminManager Interface" )]interface IAppHostWritableAdminManager : IAppHostAdminManager{ HRESULT CommitChanges(); [propget] HRESULT CommitPath( [out, retval] BSTR * pbstrCommitPath ); [propput] HRESULT CommitPath( [in] BSTR bstrCommitPath );}[ object, uuid( 8f6d760f-f0cb-4d69-b5f6-848b33e9bdc6 ), pointer_default( unique ), helpstring( "IAppHostConfigManager Interface" )]interface IAppHostConfigManager : IUnknown{ HRESULT GetConfigFile( [in] BSTR bstrConfigPath, [out, retval] IAppHostConfigFile ** ppConfigFile ); HRESULT GetUniqueConfigPath( [in] BSTR bstrConfigPath, [out, retval] BSTR * pbstrUniquePath );}Appendix B: Product Behavior XE "Product behavior" The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include released service packs.Note: Some of the information in this section is subject to change because it applies to an unreleased, preliminary version of the Windows Server operating system, and thus may differ from the final version of the server software when released. All behavior notes that pertain to the unreleased, preliminary version of the Windows Server operating system contain specific references to Windows Server 2016 Technical Preview as an aid to the reader. Windows Vista operating system with Service Pack 1 (SP1)Windows Server 2008 operating systemWindows 7 operating systemWindows Server 2008 R2 operating systemWindows 8 operating systemWindows Server 2012 operating systemWindows 8.1 operating systemWindows Server 2012 R2 operating systemWindows 10 operating systemWindows Server 2016 Technical Preview operating system Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms SHOULD or SHOULD NOT implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term MAY implies that the product does not follow the prescription. HYPERLINK \l "Appendix_A_Target_1" \h <1> Section 1.9: Windows supports these values.Change Tracking XE "Change tracking" XE "Tracking changes" This section identifies changes that were made to this document since the last release. Changes are classified as New, Major, Minor, Editorial, or No change. The revision class New means that a new document is being released.The revision class Major means that the technical content in the document was significantly revised. Major changes affect protocol interoperability or implementation. Examples of major changes are:A document revision that incorporates changes to interoperability requirements or functionality.The removal of a document from the documentation set.The revision class Minor means that the meaning of the technical content was clarified. Minor changes do not affect protocol interoperability or implementation. Examples of minor changes are updates to clarify ambiguity at the sentence, paragraph, or table level.The revision class Editorial means that the formatting in the technical content was changed. Editorial changes apply to grammatical, formatting, and style issues.The revision class No change means that no new technical changes were introduced. Minor editorial and formatting changes may have been made, but the technical content of the document is identical to the last released version.Major and minor changes can be described further using the following change types:New content added.Content updated.Content removed.New product behavior note added.Product behavior note updated.Product behavior note removed.New protocol syntax added.Protocol syntax updated.Protocol syntax removed.New content added due to protocol revision.Content updated due to protocol revision.Content removed due to protocol revision.New protocol syntax added due to protocol revision.Protocol syntax updated due to protocol revision.Protocol syntax removed due to protocol revision.Obsolete document removed.Editorial changes are always classified with the change type Editorially updated.Some important terms used in the change type descriptions are defined as follows:Protocol syntax refers to data elements (such as packets, structures, enumerations, and methods) as well as interfaces.Protocol revision refers to changes made to a protocol that affect the bits that are sent over the wire.The changes made to this document are listed in the following table. For more information, please contact dochelp@.SectionTracking number (if applicable) and descriptionMajor change (Y or N)Change type7 Appendix B: Product BehaviorAdded Windows 10 to applicability list.YContent update.IndexAAbstract data model server PAGEREF section_ad859e82257a41c3aba007a0252a511314Abstract data model - server PAGEREF section_ad859e82257a41c3aba007a0252a511314AddConfigSection method PAGEREF section_94777dd665e14d83921475ed7817681241AddElement method PAGEREF section_fb641e3c147e41f4b4fae2b4d2286f9962AddElementNames method PAGEREF section_c6b8181eb65c4b11983e48066af98e6b26AddLocation method PAGEREF section_26cc91683c7d4430909fbf127dfaf75644AddSection method PAGEREF section_2530e5f1d2e24c51845f1255e0fa7e69111AddSectionGroup method PAGEREF section_1604003d015c4470a0326e458b9091fe114AllowDefinition method (section 3.1.4.27.6 PAGEREF section_d515580efb9d4ff0bd5c8c0b86167291107, section 3.1.4.27.7 PAGEREF section_2cf21612b0874511bcd6b97188472c45108)AllowLocation method (section 3.1.4.27.8 PAGEREF section_bc56f8a5a89e4d8fbce8129291210624108, section 3.1.4.27.9 PAGEREF section_50469e26914f4cfea359a068b730d683109)Applicability PAGEREF section_3dfae50dc4a44f61a96b6e09378ee94810CCapability negotiation PAGEREF section_ffd8b3538b9b4c2281d2b313b25515fe11Change tracking PAGEREF section_32eb30696af446ab97e2bf0079db8fb3140ChildElements method PAGEREF section_d562dd9143d1477f8ae86eb4c3a6ca3d53ChildElementSchemas method PAGEREF section_02afc0b7507145ccb7f115d2c062214568Clear method (section 3.1.4.12.10 PAGEREF section_ff655bb2b7184ebf9d20b33640e5070c59, section 3.1.4.13.5 PAGEREF section_d0e00a45fd8948719dbdf4123eec60d463, section 3.1.4.22.4 PAGEREF section_f915b68e287b4bd6a13ed0bd9570d34e86)ClearElementSchema method PAGEREF section_bab3821ed86f4f30a6492b525035ceb828ClearInvalidSections method PAGEREF section_b19edf2104554ef4b89aca28e7838e3f38Collection method PAGEREF section_128aeb0894fb4d48a5d5bde3a96aae1f52CollectionSchema method PAGEREF section_0b61da9bef9f401b8919285aeb32c9ad67CommitChanges method PAGEREF section_d6f991c282d84d06a275f3aaae63efb7117CommitPath method (section 3.1.4.30.2 PAGEREF section_e83fb590c603408caf9d0e999c4af97d118, section 3.1.4.30.3 PAGEREF section_66a019b70ab84193baa2cb6d5f56a40c118)Common data types PAGEREF section_10452b202f9446049b75f34d8ba6655713ConfigManager method PAGEREF section_227529bfe4954297b33471e677873eb023ConfigPath method (section 3.1.4.5.3 PAGEREF section_1446143a14a64fbc98bd249caef6402231, section 3.1.4.6.1 PAGEREF section_9c33b979ba974d74b351768f1ddb75a135)Count method (section 3.1.4.3.1 PAGEREF section_b3369be1d29a4a80a0879f6c051b9c5a24, section 3.1.4.7.2 PAGEREF section_080368e81b044fc88abec24f0b8ceb1440, section 3.1.4.8.1 PAGEREF section_e2ccd3e4022447efb2711863ec2aba2543, section 3.1.4.11.1 PAGEREF section_52592537df75439ea03966e8a6d736ad49, section 3.1.4.13.1 PAGEREF section_07489b9b3d2f4cc0983fb9ba8abf957e61, section 3.1.4.15.1 PAGEREF section_32fbbf5d52e0401c844686c4745916e770, section 3.1.4.18.1 PAGEREF section_50561dc91e0d44dca1e1a0217bf4dc7176, section 3.1.4.23.1 PAGEREF section_103d3c963843413484cfde0e5402815091, section 3.1.4.26.1 PAGEREF section_6a13c752d73444e8921967b938fbdcaa103, section 3.1.4.28.1 PAGEREF section_d328b18c61454c65ad5522e1f61a4b8d110, section 3.1.4.29.1 PAGEREF section_3507f24060254dccbafda75a5806580c112)Create a new configuration section entry in the configsections section example PAGEREF section_f8fd57b876cb49c190f8f0585c6e9ddc120Create an apphostadminmanager locally example PAGEREF section_8f7b3fb94a3049f7a49822ba8bcdee5d120CreateInstance method PAGEREF section_a3bae5687e4c4d208783a7735f9480cf76CreateNewElement method PAGEREF section_6e12c978ef4c42e28b64814f56e3077e64Creating AppHostAdminManager locally - example PAGEREF section_8f7b3fb94a3049f7a49822ba8bcdee5d120Creating configuration section entry - example PAGEREF section_f8fd57b876cb49c190f8f0585c6e9ddc120DData model - abstract server PAGEREF section_ad859e82257a41c3aba007a0252a511314Data model - abstract - server PAGEREF section_ad859e82257a41c3aba007a0252a511314Data types PAGEREF section_10452b202f9446049b75f34d8ba6655713 common - overview PAGEREF section_10452b202f9446049b75f34d8ba6655713DefaultValue method PAGEREF section_ac0abe0c68de49778c3ba19e651f268c95DeleteConfigSection method PAGEREF section_f5690b96ae504e3cad4f7fc8fbcc0e8b42DeleteElement method PAGEREF section_95cfc8cfb79c4ceab6acc1fe9ddb7b9262DeleteLocation method PAGEREF section_bef9d04dd4fa426ea56a13564b305f2145DeleteSection method PAGEREF section_9835e313e8c04f109a1b32a62bccbef7111DeleteSectionGroup method PAGEREF section_70aeb6634cde40df8c4854fa9f59b4a4115DoesAllowDuplicates method PAGEREF section_ca6982acf0474d9598043cb7a9fb124929DoesAllowInfinite method PAGEREF section_6cb98505f68e4901935a6cfe61e93cf0101DoesAllowUnschematizedProperties method PAGEREF section_26c45729e36b4a4f854427328430e35c66EEdit the configuration of apphost in a location tag example PAGEREF section_ecc30f9acd0c4c09af03ce7decd781ed122Editing APPHOST configuration in location tag - example PAGEREF section_ecc30f9acd0c4c09af03ce7decd781ed122ErrorLine method PAGEREF section_0cbdf42f820c4bbd8894dd4e0106120032ErrorString method PAGEREF section_ac92c44f4e5143adaf0373033aeec35a34Events local - server PAGEREF section_f4c5b1c2f2cb43e28ebf1a541d2cbb10119 timer - server PAGEREF section_151603f79ab34d41a32d8022168adabc119Examples create a new configuration section entry in the configsections section PAGEREF section_f8fd57b876cb49c190f8f0585c6e9ddc120 create an apphostadminmanager locally PAGEREF section_8f7b3fb94a3049f7a49822ba8bcdee5d120 creating AppHostAdminManager locally PAGEREF section_8f7b3fb94a3049f7a49822ba8bcdee5d120 creating configuration section entry PAGEREF section_f8fd57b876cb49c190f8f0585c6e9ddc120 edit the configuration of apphost in a location tag PAGEREF section_ecc30f9acd0c4c09af03ce7decd781ed122 editing APPHOST configuration in location tag PAGEREF section_ecc30f9acd0c4c09af03ce7decd781ed122 get a property: get the enabled property of the defaultdocument section PAGEREF section_54830bac3fb243f6a39e88dc672e5774121 get a section for read access: the defaultdocument section PAGEREF section_ebf001bf4cba4ddfabc4d372ec6faab9121 get a section for write: get the defaultdocument section and toggle the enabled attribute PAGEREF section_176b84f1dfb64e5490f2dbf91efda71c122 get a section: get the anonymousauthentication section PAGEREF section_fc0aae2e8831444fb98b25a10f693196121 get metadata: get the overridemode of a defaultdocument section PAGEREF section_925c647c0d59406e9b1996cca1244427120 getting metadata PAGEREF section_925c647c0d59406e9b1996cca1244427120 getting property PAGEREF section_54830bac3fb243f6a39e88dc672e5774121 getting section PAGEREF section_fc0aae2e8831444fb98b25a10f693196121 getting section for read access PAGEREF section_ebf001bf4cba4ddfabc4d372ec6faab9121 getting section for write PAGEREF section_176b84f1dfb64e5490f2dbf91efda71c122 list the entries of a collection PAGEREF section_f6a43844714b436d923583d3f43bc2de121 listing entries of collection PAGEREF section_f6a43844714b436d923583d3f43bc2de121 overview PAGEREF section_265348ce4cb042d7baf4c6cdb3dd4f0c120 read schema information: determine if ismergeappend is set in the defaultdocuments section PAGEREF section_41d53acac9174087a848dea4a8cca869122 reading schema information PAGEREF section_41d53acac9174087a848dea4a8cca869122 remove an entry of a collection PAGEREF section_c2cc6f8b57fe46bfb703c044622802f1121 removing entry of collection PAGEREF section_c2cc6f8b57fe46bfb703c044622802f1121 set metadata: set the overridemode of the defaultdocument section PAGEREF section_0a95d2d8134a469289dab73781faf086120 setting metadata PAGEREF section_0a95d2d8134a469289dab73781faf086120 write into a collection: add an entry for the defaultdocument section for site1 as a location tag PAGEREF section_8f3d8a7df5aa461495de77cfea4ece5c123 write into a collection: clear the contents of the defaultdocument section for site1 PAGEREF section_d4c018c6102d4b36b154394e9ffe8cf1122 writing into collection adding entry as location tag PAGEREF section_8f3d8a7df5aa461495de77cfea4ece5c123 clearing contents PAGEREF section_d4c018c6102d4b36b154394e9ffe8cf1122Exception method PAGEREF section_9527d5e19cc6407f872980badd45b8f387Execute method PAGEREF section_dcc881458eca46d8a0a20fa0e7f855b379FFields - vendor-extensible PAGEREF section_1f958aafa4fa4b00b52f9412b4df9c7a11FileName method PAGEREF section_b8cfc0f007724b0facc7f1b53b1ae18a31FilePath method PAGEREF section_2bce71f5cefb4c12b645601e5d7d0ffb35Full IDL PAGEREF section_f1369d54d65742689af9f5e924fcf849125GGet a property: get the enabled property of the defaultdocument section example PAGEREF section_54830bac3fb243f6a39e88dc672e5774121Get a section for read access: the defaultdocument section example PAGEREF section_ebf001bf4cba4ddfabc4d372ec6faab9121Get a section for write: get the defaultdocument section and toggle the enabled attribute example PAGEREF section_176b84f1dfb64e5490f2dbf91efda71c122Get a section: get the anonymousauthentication section example PAGEREF section_fc0aae2e8831444fb98b25a10f693196121Get metadata: get the overridemode of a defaultdocument section example PAGEREF section_925c647c0d59406e9b1996cca1244427120GetAddElementSchema method PAGEREF section_2939c8a6f1c5464ea639e1f915a84ca327GetAdminSection method (section 3.1.4.1.1 PAGEREF section_b8ca90fd7c8c4e8f9ecc3ecf640db26618, section 3.1.4.6.4 PAGEREF section_0ff8f4cd3d9947a5a457721f24cb09f636)GetConfigFile method PAGEREF section_f97ca13f3e34402ba0fb053d676a064e46GetElementByName method PAGEREF section_9305daa214f34fa596a591349d24c86858GetMetadata method (section 3.1.4.1.2 PAGEREF section_8ad545332179465385d99f11fb54e4ba19, section 3.1.4.4.6 PAGEREF section_03d2b192c6a34500856ae81d626d162429, section 3.1.4.6.5 PAGEREF section_3b95e48c9c8349298392a47e953c42dd37, section 3.1.4.12.5 PAGEREF section_5f91ec3e0192487394abb940e9b67e7854, section 3.1.4.14.3 PAGEREF section_4529cc6c4ce141d9ad72d6e00b94379766, section 3.1.4.19.4 PAGEREF section_928fc20f2c2d4df396026f99867cccd279, section 3.1.4.20.4 PAGEREF section_060f6982aa5a4af4b44f409cf822720e82, section 3.1.4.22.7 PAGEREF section_db780c5f79cf4c2dbc0292f9d68cf18488, section 3.1.4.25.10 PAGEREF section_320390c5f02a4e2aa199279fff6d7a1199)GetPropertyByName method PAGEREF section_7ad00f838cd24f0a80e698236b05e3c658GetSiteElementFromSiteId method PAGEREF section_8f90ccb967724185955047afc8d9a12073GetSiteIdFromSiteName method PAGEREF section_dea08a72b92c424ca5569f915f5c902572GetSiteNameFromSiteId method PAGEREF section_330fb07de5974538a3ce21b023ddcd5471Getting metadata example PAGEREF section_925c647c0d59406e9b1996cca1244427120Getting property example PAGEREF section_54830bac3fb243f6a39e88dc672e5774121Getting section example PAGEREF section_fc0aae2e8831444fb98b25a10f693196121Getting section for read access example PAGEREF section_ebf001bf4cba4ddfabc4d372ec6faab9121Getting section for write example PAGEREF section_176b84f1dfb64e5490f2dbf91efda71c122GetUniqueConfigPath method PAGEREF section_f368fd09096c4f6598ae1918a356956047Glossary PAGEREF section_4e36e522a35d4fecbc9c6ed14d49d5ca9IIAppHostAdminManager method PAGEREF section_0d8b3e85b02842a1a3733fbb8be6e57e17IAppHostChangeHandler method PAGEREF section_63a8aed1a95747439acbf2393413c98723IAppHostChildElementCollection method PAGEREF section_d6558e853af54c5eafe281ab09c4e81824IAppHostCollectionSchema method PAGEREF section_9b7dbefe84a8418da9c24c00d9552a0326IAppHostConfigException method PAGEREF section_e5a97286155d40c881de41d7ee0933de30IAppHostConfigFile method PAGEREF section_3687acfffb794e0283496ca2f49df2a534IAppHostConfigLocation method PAGEREF section_1939cfaf92c940b59cca791c531c01e639IAppHostConfigLocationCollection method PAGEREF section_4b1ee19e341845df8ff92644ab6c106c43IAppHostConfigManager method PAGEREF section_7ca74f75984a4a01853de6e5b4b6b49646IAppHostConstantValue method PAGEREF section_819dc2a730524677a78f66647c088c5648IAppHostConstantValueCollection method PAGEREF section_857c515e21164a13ba1332ece11781dc49IAppHostElement method PAGEREF section_5977488709e34de5ad8e4794f404b12351IAppHostElementCollection method PAGEREF section_5b32b6df83644ba98d04bfe0a4891a5760IAppHostElementSchema method PAGEREF section_a988c2d410e64e2f8b6f5cccff12298f65IAppHostElementSchemaCollection method PAGEREF section_e8270d3aa2e24ef182eac748aedcf86169IAppHostMappingExtension method PAGEREF section_0cc538ace493481bb314d27b5b6dec0e71IAppHostMethod method PAGEREF section_9154a520ce4f43e195c263590cfea20674IAppHostMethodCollection method PAGEREF section_c286d33266da4ac5875e012d4f84b48376IAppHostMethodInstance method PAGEREF section_64d5e1bdc9ab4b2390e77ad7b930df1578IAppHostMethodSchema method PAGEREF section_fe707054773b4849a90559c0d6f7c20681IAppHostPathMapper method PAGEREF section_75417b7ee588439bb03aecc5b3949fbd83IAppHostProperty method PAGEREF section_564b4c1f13a040c4974b1cbbd41764b384IAppHostPropertyCollection method PAGEREF section_0d192c3297c24e04aa59acba6c63259d90IAppHostPropertyException method PAGEREF section_cbeb2e99c48648c797c0d225576d40a692IAppHostPropertySchema method PAGEREF section_1854ec404f20407ab661cb9c0678119094IAppHostPropertySchemaCollection method PAGEREF section_46c2b11fc77f422aafe7a239298b365b102IAppHostSectionDefinition method PAGEREF section_ee57746aa5ab4b788fbf34ae7ca75d23104IAppHostSectionDefinitionCollection method PAGEREF section_844bdf1ba6644832bde994e9ac8b8e85109IAppHostSectionGroup method PAGEREF section_89168d9d1fe84a84bcd255fdbc3c47ea112IAppHostWritableAdminManager method PAGEREF section_57fad7c187c54a729feb3fd00a327a75117IDL PAGEREF section_f1369d54d65742689af9f5e924fcf849125Implementer - security considerations PAGEREF section_8e4a32e0b00d48609debb48200517de9124Index of security parameters PAGEREF section_8159cf40a60c4e489d397472e55ba615124Informative references PAGEREF section_dcda4f9deaf14ff19f42ce6cc4d61b3110Initialization server PAGEREF section_fd797becb7ff460eaffe96509380bca517Initialization - server PAGEREF section_fd797becb7ff460eaffe96509380bca517Input method PAGEREF section_807525e17b1848fcb6d078b7d26b59fa78InputSchema method PAGEREF section_61bb2ed4bb7f4933879fd968bbfa947e82Introduction PAGEREF section_ed9e5b459f73442fa74604793159b7eb9InvalidValue method PAGEREF section_e20bdca74c1743f383f236a68c181c3292IsCaseSensitive method PAGEREF section_023c2249394c46f4b1acd5e7e5bb95f2100IsCollectionDefault method PAGEREF section_23492937388b4f3496add93feb7a345569IsCombinedKey method PAGEREF section_71bd59b88cff463f9c2cc1bd9d7c9ec697IsEncrypted method PAGEREF section_7472619d534b498cac7020a0562c4712101IsExpanded method PAGEREF section_8460fd9e9df44618930e2efd366e19ce97IsMergeAppend method PAGEREF section_3113c6b2f824488e9f15b0cc61be9bd529IsRequired method PAGEREF section_ccadfb85617d4953b06f9114c0ed31bf96IsUniqueKey method PAGEREF section_1eb2c1959e2c4e988a17b2d2e418788696Item method (section 3.1.4.3.2 PAGEREF section_2f1f7ba640f144e89655b15c15eec68725, section 3.1.4.7.3 PAGEREF section_26f1e36d4c8f4c39b48d9f8c072d3a7741, section 3.1.4.8.2 PAGEREF section_e7b323b94a854375a3a4c2e695530ec444, section 3.1.4.11.2 PAGEREF section_3b98383a515e4bffb8b8f28bbede585f50, section 3.1.4.13.2 PAGEREF section_910a2c4ceaca4a12b3181e0f662eea1661, section 3.1.4.15.2 PAGEREF section_0aa992e810f74e9abea17fef2a86f67f70, section 3.1.4.18.2 PAGEREF section_8f5e894e57724533980c7eb53d331bb977, section 3.1.4.23.2 PAGEREF section_d3581bb3be7141a59a2912116d58565991, section 3.1.4.26.2 PAGEREF section_ec59c46e0b9e48f6ae5d0b6af955e918103, section 3.1.4.28.2 PAGEREF section_2ae967eda2394c9098b140003ea51fee110, section 3.1.4.29.2 PAGEREF section_0076a32c4a6146d888310b064deb8896113)LLineNumber method PAGEREF section_fa41d5e679fb4913867320f0cd7070a530List the entries of a collection example PAGEREF section_f6a43844714b436d923583d3f43bc2de121Listing entries of collection - example PAGEREF section_f6a43844714b436d923583d3f43bc2de121Local events server PAGEREF section_f4c5b1c2f2cb43e28ebf1a541d2cbb10119Local events - server PAGEREF section_f4c5b1c2f2cb43e28ebf1a541d2cbb10119Locations method PAGEREF section_cccec5d9cd9244c3bf41532e7ca0265d36MMapPath method (section 3.1.4.16.4 PAGEREF section_11dea6a2739d4f96bd97415a8ba172c673, section 3.1.4.21.1 PAGEREF section_ea289bf3f5344341908080afdd54abc583)Message processing server PAGEREF section_f2825aa00509481183e27c3b15040fa617Message processing - server PAGEREF section_f2825aa00509481183e27c3b15040fa617Messages common data types PAGEREF section_10452b202f9446049b75f34d8ba6655713 data types PAGEREF section_10452b202f9446049b75f34d8ba6655713 transport PAGEREF section_754753acb0304333ac0335f8ec14819b13Methods IAppHostAdminManager PAGEREF section_0d8b3e85b02842a1a3733fbb8be6e57e17 IAppHostChangeHandler PAGEREF section_63a8aed1a95747439acbf2393413c98723 IAppHostChildElementCollection PAGEREF section_d6558e853af54c5eafe281ab09c4e81824 IAppHostCollectionSchema PAGEREF section_9b7dbefe84a8418da9c24c00d9552a0326 IAppHostConfigException PAGEREF section_e5a97286155d40c881de41d7ee0933de30 IAppHostConfigFile PAGEREF section_3687acfffb794e0283496ca2f49df2a534 IAppHostConfigLocation PAGEREF section_1939cfaf92c940b59cca791c531c01e639 IAppHostConfigLocationCollection PAGEREF section_4b1ee19e341845df8ff92644ab6c106c43 IAppHostConfigManager PAGEREF section_7ca74f75984a4a01853de6e5b4b6b49646 IAppHostConstantValue PAGEREF section_819dc2a730524677a78f66647c088c5648 IAppHostConstantValueCollection PAGEREF section_857c515e21164a13ba1332ece11781dc49 IAppHostElement PAGEREF section_5977488709e34de5ad8e4794f404b12351 IAppHostElementCollection PAGEREF section_5b32b6df83644ba98d04bfe0a4891a5760 IAppHostElementSchema PAGEREF section_a988c2d410e64e2f8b6f5cccff12298f65 IAppHostElementSchemaCollection PAGEREF section_e8270d3aa2e24ef182eac748aedcf86169 IAppHostMappingExtension PAGEREF section_0cc538ace493481bb314d27b5b6dec0e71 IAppHostMethod PAGEREF section_9154a520ce4f43e195c263590cfea20674 IAppHostMethodCollection PAGEREF section_c286d33266da4ac5875e012d4f84b48376 IAppHostMethodInstance PAGEREF section_64d5e1bdc9ab4b2390e77ad7b930df1578 IAppHostMethodSchema PAGEREF section_fe707054773b4849a90559c0d6f7c20681 IAppHostPathMapper PAGEREF section_75417b7ee588439bb03aecc5b3949fbd83 IAppHostProperty PAGEREF section_564b4c1f13a040c4974b1cbbd41764b384 IAppHostPropertyCollection PAGEREF section_0d192c3297c24e04aa59acba6c63259d90 IAppHostPropertyException PAGEREF section_cbeb2e99c48648c797c0d225576d40a692 IAppHostPropertySchema PAGEREF section_1854ec404f20407ab661cb9c0678119094 IAppHostPropertySchemaCollection PAGEREF section_46c2b11fc77f422aafe7a239298b365b102 IAppHostSectionDefinition PAGEREF section_ee57746aa5ab4b788fbf34ae7ca75d23104 IAppHostSectionDefinitionCollection PAGEREF section_844bdf1ba6644832bde994e9ac8b8e85109 IAppHostSectionGroup PAGEREF section_89168d9d1fe84a84bcd255fdbc3c47ea112 IAppHostWritableAdminManager PAGEREF section_57fad7c187c54a729feb3fd00a327a75117Methods method PAGEREF section_07e23b1305aa4a10b99bf899801c278e59NName method (section 3.1.4.10.1 PAGEREF section_81d6f61e5fc34dc784e002e8c95d718648, section 3.1.4.12.1 PAGEREF section_952550fc1c594e4d98b353017761cd8a51, section 3.1.4.14.1 PAGEREF section_4d3f2b78641b4c0a86f57460c74c8aa365, section 3.1.4.17.1 PAGEREF section_11500a1c1a7140ba80dfa8a45f511ab675, section 3.1.4.20.1 PAGEREF section_3de2b1addead498ea74d938f5cb215b381, section 3.1.4.22.1 PAGEREF section_fa19b1f495e440a4b97bd7622e649f4685, section 3.1.4.25.1 PAGEREF section_6e930e5e18514e79bc26d07ae7de38df94, section 3.1.4.27.1 PAGEREF section_bd838252c4aa4b42b34c5279f5b5ffb3104, section 3.1.4.29.6 PAGEREF section_b38dab42e4014838b1a32e3f4937f926115)Normative references PAGEREF section_eecd1348e6834cb79d9e65c1c158df6310OOnSectionChanges method PAGEREF section_c46852f73702499da97e458e6216fd3724Output method PAGEREF section_b89a1e0d2ec746acba8eb0a3bca43f0d78OutputSchema method PAGEREF section_216ca22e993041ab804feba8a937128082OverrideModeDefault method (section 3.1.4.27.4 PAGEREF section_a1fd6193ba9943c892051f1b1430956d106, section 3.1.4.27.5 PAGEREF section_2526255b053a4762a199f3c2140757dc107)Overview (synopsis) PAGEREF section_115357b32ec14ac0a588169cf7d4599710PParameters - security index PAGEREF section_8159cf40a60c4e489d397472e55ba615124Path method PAGEREF section_dc8767fddb364c06807076decb0e9f8340PossibleValues method PAGEREF section_b4c6fdaff2834c7a825966186f821dd3100PostErrorLine method PAGEREF section_aa80156d23584168a0685a1a7771835933Preconditions PAGEREF section_dba53321d35c427d82561501d6a5006410PreErrorLine method PAGEREF section_a0b9ceb9a5214e6c874cf3e2c5504cf632Prerequisites PAGEREF section_dba53321d35c427d82561501d6a5006410Product behavior PAGEREF section_dad8c25ccb904140919904d6a6c70509139Properties method PAGEREF section_feb558fb64344243941184962f2e618f52PropertySchemas method PAGEREF section_f8c5be0ca7be4f189bb6c85f296bb96f68Protocol Details overview PAGEREF section_458e3e7207b542a5bad4f6a60dab264a14RRead schema information: determine if ismergeappend is set in the defaultdocuments section example PAGEREF section_41d53acac9174087a848dea4a8cca869122Reading schema information example PAGEREF section_41d53acac9174087a848dea4a8cca869122References PAGEREF section_a4fe1cf7561d4b688f5593bc2c9d7a8810 informative PAGEREF section_dcda4f9deaf14ff19f42ce6cc4d61b3110 normative PAGEREF section_eecd1348e6834cb79d9e65c1c158df6310Relationship to other protocols PAGEREF section_38e55479823340b8af25109dd37c882910Remove an entry of a collection example PAGEREF section_c2cc6f8b57fe46bfb703c044622802f1121RemoveElementSchema method PAGEREF section_a5872b864a8a43af82be29c32e1fa7e628Removing entry of collection - example PAGEREF section_c2cc6f8b57fe46bfb703c044622802f1121RootSectionGroup method PAGEREF section_fd5098f4b902480a8706a68f3de3932238SSchema method (section 3.1.4.12.7 PAGEREF section_3f80b67d91554facb5cd118d64ac68f957, section 3.1.4.13.7 PAGEREF section_8ea1f626c8dd4c82afabe8833d1893cd64, section 3.1.4.17.2 PAGEREF section_7539bce469734acdad0fd3bb22409c9675, section 3.1.4.22.9 PAGEREF section_5442a9714ea9417897f30bb95fd6351b90)Sections method PAGEREF section_81216219c00b4fc4808e93a034700183114Security implementer considerations PAGEREF section_8e4a32e0b00d48609debb48200517de9124 parameter index PAGEREF section_8159cf40a60c4e489d397472e55ba615124Sequencing rules server PAGEREF section_f2825aa00509481183e27c3b15040fa617Sequencing rules - server PAGEREF section_f2825aa00509481183e27c3b15040fa617Server abstract data model PAGEREF section_ad859e82257a41c3aba007a0252a511314 IAppHostAdminManager method PAGEREF section_0d8b3e85b02842a1a3733fbb8be6e57e17 IAppHostChangeHandler method PAGEREF section_63a8aed1a95747439acbf2393413c98723 IAppHostChildElementCollection method PAGEREF section_d6558e853af54c5eafe281ab09c4e81824 IAppHostCollectionSchema method PAGEREF section_9b7dbefe84a8418da9c24c00d9552a0326 IAppHostConfigException method PAGEREF section_e5a97286155d40c881de41d7ee0933de30 IAppHostConfigFile method PAGEREF section_3687acfffb794e0283496ca2f49df2a534 IAppHostConfigLocation method PAGEREF section_1939cfaf92c940b59cca791c531c01e639 IAppHostConfigLocationCollection method PAGEREF section_4b1ee19e341845df8ff92644ab6c106c43 IAppHostConfigManager method PAGEREF section_7ca74f75984a4a01853de6e5b4b6b49646 IAppHostConstantValue method PAGEREF section_819dc2a730524677a78f66647c088c5648 IAppHostConstantValueCollection method PAGEREF section_857c515e21164a13ba1332ece11781dc49 IAppHostElement method PAGEREF section_5977488709e34de5ad8e4794f404b12351 IAppHostElementCollection method PAGEREF section_5b32b6df83644ba98d04bfe0a4891a5760 IAppHostElementSchema method PAGEREF section_a988c2d410e64e2f8b6f5cccff12298f65 IAppHostElementSchemaCollection method PAGEREF section_e8270d3aa2e24ef182eac748aedcf86169 IAppHostMappingExtension method PAGEREF section_0cc538ace493481bb314d27b5b6dec0e71 IAppHostMethod method PAGEREF section_9154a520ce4f43e195c263590cfea20674 IAppHostMethodCollection method PAGEREF section_c286d33266da4ac5875e012d4f84b48376 IAppHostMethodInstance method PAGEREF section_64d5e1bdc9ab4b2390e77ad7b930df1578 IAppHostMethodSchema method PAGEREF section_fe707054773b4849a90559c0d6f7c20681 IAppHostPathMapper method PAGEREF section_75417b7ee588439bb03aecc5b3949fbd83 IAppHostProperty method PAGEREF section_564b4c1f13a040c4974b1cbbd41764b384 IAppHostPropertyCollection method PAGEREF section_0d192c3297c24e04aa59acba6c63259d90 IAppHostPropertyException method PAGEREF section_cbeb2e99c48648c797c0d225576d40a692 IAppHostPropertySchema method PAGEREF section_1854ec404f20407ab661cb9c0678119094 IAppHostPropertySchemaCollection method PAGEREF section_46c2b11fc77f422aafe7a239298b365b102 IAppHostSectionDefinition method PAGEREF section_ee57746aa5ab4b788fbf34ae7ca75d23104 IAppHostSectionDefinitionCollection method PAGEREF section_844bdf1ba6644832bde994e9ac8b8e85109 IAppHostSectionGroup method PAGEREF section_89168d9d1fe84a84bcd255fdbc3c47ea112 IAppHostWritableAdminManager method PAGEREF section_57fad7c187c54a729feb3fd00a327a75117 initialization PAGEREF section_fd797becb7ff460eaffe96509380bca517 local events PAGEREF section_f4c5b1c2f2cb43e28ebf1a541d2cbb10119 message processing PAGEREF section_f2825aa00509481183e27c3b15040fa617 sequencing rules PAGEREF section_f2825aa00509481183e27c3b15040fa617 timer events PAGEREF section_151603f79ab34d41a32d8022168adabc119 timers PAGEREF section_b4c64ee0d286458aaa62f7a333ba193717Set metadata: set the overridemode of the defaultdocument section example PAGEREF section_0a95d2d8134a469289dab73781faf086120SetMetadata method (section 3.1.4.1.3 PAGEREF section_1e694f7402bd4baea74fabf7a9bc461021, section 3.1.4.6.6 PAGEREF section_cbfc71bf76a94ec980f849549f05870638, section 3.1.4.12.6 PAGEREF section_72d7a862f8ed40caac6cbfd52cfc29ba56, section 3.1.4.19.5 PAGEREF section_d7888e52325646d5aef070a78fd8ebfd80, section 3.1.4.22.8 PAGEREF section_a0a725128a3c495e90d1ad72c5a17df389)Setting metadata example PAGEREF section_0a95d2d8134a469289dab73781faf086120Standards assignments PAGEREF section_584d015bfecc46099b8df13d4228e7f811StringValue method PAGEREF section_f0374c220e0a4c8581941d89ebbcfc1387TTimer events server PAGEREF section_151603f79ab34d41a32d8022168adabc119Timer events - server PAGEREF section_151603f79ab34d41a32d8022168adabc119Timers server PAGEREF section_b4c64ee0d286458aaa62f7a333ba193717Timers - server PAGEREF section_b4c64ee0d286458aaa62f7a333ba193717TimeSpanFormat method PAGEREF section_a9d4fbac6ffe48bd92f19bbb50df37db102Tracking changes PAGEREF section_32eb30696af446ab97e2bf0079db8fb3140Transport PAGEREF section_754753acb0304333ac0335f8ec14819b13Type method (section 3.1.4.25.2 PAGEREF section_66d7878fdd344249a0dc0a192fe211fc95, section 3.1.4.27.2 PAGEREF section_8c657e55c8bd44c0810ccd05bb6084c2105, section 3.1.4.27.3 PAGEREF section_5eee2ca363694c29ab8d29e7364f1f07105, section 3.1.4.29.7 PAGEREF section_3a311beb885948e18d08a5840726de71116, section 3.1.4.29.8 PAGEREF section_3d64548416fc40f592427e97a7e5fe32116)VValidationFailureParameters method PAGEREF section_58929363285b4ac082374cf91aaa368793ValidationFailureReason method PAGEREF section_5787c7ced3cf41c8872eaaef16aa7e2c93ValidationParameter method PAGEREF section_133b37c906b54617bc680e7809de8bbd98ValidationType method PAGEREF section_b2dd9a3aeef2408d995b96bf52bc251f98Value method (section 3.1.4.10.2 PAGEREF section_dc6abfa90c754a6bbe3fc2d16482303349, section 3.1.4.22.2 PAGEREF section_40af30a7e9134a3b9bf719c31754b11f85, section 3.1.4.22.3 PAGEREF section_035eafce208747ef9e4f5beb2dff76e486)Vendor-extensible fields PAGEREF section_1f958aafa4fa4b00b52f9412b4df9c7a11Versioning PAGEREF section_ffd8b3538b9b4c2281d2b313b25515fe11WWrite into a collection: add an entry for the defaultdocument section for site1 as a location tag example PAGEREF section_8f3d8a7df5aa461495de77cfea4ece5c123Write into a collection: clear the contents of the defaultdocument section for site1 example PAGEREF section_d4c018c6102d4b36b154394e9ffe8cf1122Writing into collection example adding entry as location tag PAGEREF section_8f3d8a7df5aa461495de77cfea4ece5c123 clearing contents PAGEREF section_d4c018c6102d4b36b154394e9ffe8cf1122 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download