From b76388bf618c3b0c44edd0e8409a089ca1b63400 Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Thu, 19 Dec 2024 08:24:03 -0800 Subject: [PATCH] Generate bindings for um/ahadmin, um/http, um/httpserv, um/httptrace, and um/wpframework --- .../WinRT/winrt/inspectable/generate.rsp | 8 + generation/WinRT/winrt/winstring/generate.rsp | 4 + .../Windows/um/AppxPackaging/generate.rsp | 1 + generation/Windows/um/ahadmin/generate.rsp | 14 + generation/Windows/um/ahadmin/header.txt | 4 + generation/Windows/um/ahadmin/um-ahadmin.h | 2 + generation/Windows/um/http/generate.rsp | 79 + generation/Windows/um/http/header.txt | 4 + generation/Windows/um/http/um-http.h | 2 + generation/Windows/um/httpserv/generate.rsp | 14 + generation/Windows/um/httpserv/header.txt | 4 + generation/Windows/um/httpserv/um-httpserv.h | 2 + generation/Windows/um/httptrace/generate.rsp | 14 + generation/Windows/um/httptrace/header.txt | 4 + .../Windows/um/httptrace/um-httptrace.h | 2 + .../Windows/um/wpframework/generate.rsp | 16 + generation/Windows/um/wpframework/header.txt | 4 + .../Windows/um/wpframework/um-wpframework.h | 2 + generation/remap-members.rsp | 3 + generation/remap-types.rsp | 126 + .../winrt/windows.foundation/DateTime.xml | 12 + .../winrt/windows.foundation/TimeSpan.xml | 12 + .../Windows/um/ahadmin/AppHostAdminManager.cs | 18 + .../um/ahadmin/AppHostWritableAdminManager.cs | 18 + .../um/ahadmin/IAppHostAdminManager.cs | 120 + .../um/ahadmin/IAppHostChangeHandler.cs | 78 + .../ahadmin/IAppHostChildElementCollection.cs | 92 + .../um/ahadmin/IAppHostCollectionSchema.cs | 162 + .../um/ahadmin/IAppHostConfigException.cs | 162 + .../Windows/um/ahadmin/IAppHostConfigFile.cs | 176 + .../um/ahadmin/IAppHostConfigLocation.cs | 134 + .../IAppHostConfigLocationCollection.cs | 134 + .../um/ahadmin/IAppHostConfigManager.cs | 92 + .../um/ahadmin/IAppHostConstantValue.cs | 92 + .../IAppHostConstantValueCollection.cs | 92 + .../Windows/um/ahadmin/IAppHostElement.cs | 218 ++ .../um/ahadmin/IAppHostElementCollection.cs | 162 + .../um/ahadmin/IAppHostElementExtension.cs | 78 + .../um/ahadmin/IAppHostElementSchema.cs | 162 + .../IAppHostElementSchemaCollection.cs | 92 + .../um/ahadmin/IAppHostMappingExtension.cs | 120 + .../Windows/um/ahadmin/IAppHostMethod.cs | 106 + .../um/ahadmin/IAppHostMethodCollection.cs | 92 + .../um/ahadmin/IAppHostMethodExtension.cs | 78 + .../um/ahadmin/IAppHostMethodInstance.cs | 134 + .../um/ahadmin/IAppHostMethodSchema.cs | 120 + .../Windows/um/ahadmin/IAppHostPathMapper.cs | 78 + .../Windows/um/ahadmin/IAppHostPathMapper2.cs | 78 + .../Windows/um/ahadmin/IAppHostProperty.cs | 190 ++ .../um/ahadmin/IAppHostPropertyCollection.cs | 92 + .../um/ahadmin/IAppHostPropertyException.cs | 183 + .../um/ahadmin/IAppHostPropertyExtension.cs | 78 + .../um/ahadmin/IAppHostPropertySchema.cs | 274 ++ .../IAppHostPropertySchemaCollection.cs | 92 + .../um/ahadmin/IAppHostSectionDefinition.cs | 218 ++ .../IAppHostSectionDefinitionCollection.cs | 120 + .../um/ahadmin/IAppHostSectionGroup.cs | 176 + .../ahadmin/IAppHostWritableAdminManager.cs | 150 + .../Interop/Windows/Windows/um/ahadmin/IID.cs | 842 +++++ .../Interop/Windows/Windows/um/http/HTTP.cs | 351 ++ .../um/http/HTTP2_SETTINGS_LIMITS_PARAM.cs | 18 + .../um/http/HTTP2_WINDOW_SIZE_PARAM.cs | 14 + .../Windows/um/http/HTTPAPI_VERSION.cs | 16 + .../Windows/um/http/HTTPAPI_VERSION.xml | 14 + .../um/http/HTTP_503_RESPONSE_VERBOSITY.cs | 19 + .../um/http/HTTP_503_RESPONSE_VERBOSITY.xml | 20 + .../HTTP_AUTHENTICATION_HARDENING_LEVELS.cs | 19 + .../HTTP_AUTHENTICATION_HARDENING_LEVELS.xml | 17 + .../Windows/um/http/HTTP_AUTH_STATUS.cs | 19 + .../um/http/HTTP_BANDWIDTH_LIMIT_INFO.cs | 17 + .../um/http/HTTP_BANDWIDTH_LIMIT_INFO.xml | 17 + .../Windows/um/http/HTTP_BINDING_INFO.cs | 16 + .../Windows/um/http/HTTP_BINDING_INFO.xml | 17 + .../Windows/um/http/HTTP_BYTE_RANGE.cs | 16 + .../Windows/um/http/HTTP_BYTE_RANGE.xml | 14 + .../Windows/um/http/HTTP_CACHE_POLICY.cs | 17 + .../Windows/um/http/HTTP_CACHE_POLICY.xml | 58 + .../Windows/um/http/HTTP_CACHE_POLICY_TYPE.cs | 22 + .../um/http/HTTP_CACHE_POLICY_TYPE.xml | 20 + .../Windows/um/http/HTTP_CERT_CONFIG_ENTRY.cs | 34 + .../Windows/um/http/HTTP_CERT_CONFIG_PARAM.cs | 18 + .../Windows/um/http/HTTP_CHANNEL_BIND_INFO.cs | 25 + .../um/http/HTTP_CONNECTION_LIMIT_INFO.cs | 17 + .../um/http/HTTP_CONNECTION_LIMIT_INFO.xml | 17 + .../Windows/um/http/HTTP_COOKED_URL.cs | 38 + .../Windows/um/http/HTTP_COOKED_URL.xml | 32 + .../HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.cs | 16 + ...HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO.cs | 21 + .../Windows/um/http/HTTP_DATA_CHUNK.cs | 184 ++ .../Windows/um/http/HTTP_DATA_CHUNK.xml | 50 + .../Windows/um/http/HTTP_DATA_CHUNK_TYPE.cs | 31 + .../Windows/um/http/HTTP_DATA_CHUNK_TYPE.xml | 32 + .../http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.cs | 16 + .../HTTP_DELEGATE_REQUEST_PROPERTY_ID.xml | 14 + .../HTTP_DELEGATE_REQUEST_PROPERTY_INFO.cs | 21 + .../HTTP_DELEGATE_REQUEST_PROPERTY_INFO.xml | 17 + .../Windows/um/http/HTTP_ENABLED_STATE.cs | 16 + .../Windows/um/http/HTTP_ENABLED_STATE.xml | 17 + .../um/http/HTTP_ERROR_HEADERS_PARAM.cs | 20 + .../Windows/um/http/HTTP_FAST_FORWARD_INFO.cs | 17 + .../Windows/um/http/HTTP_FEATURE_ID.cs | 52 + .../Windows/um/http/HTTP_FLOWRATE_INFO.cs | 25 + .../Windows/Windows/um/http/HTTP_HEADER_ID.cs | 172 + .../Windows/um/http/HTTP_HEADER_ID.xml | 173 + .../Windows/um/http/HTTP_KNOWN_HEADER.cs | 17 + .../Windows/um/http/HTTP_KNOWN_HEADER.xml | 14 + .../um/http/HTTP_LISTEN_ENDPOINT_INFO.cs | 17 + .../um/http/HTTP_LISTEN_ENDPOINT_INFO.xml | 14 + .../Windows/um/http/HTTP_LOGGING_INFO.cs | 59 + .../um/http/HTTP_LOGGING_ROLLOVER_TYPE.cs | 25 + .../Windows/um/http/HTTP_LOGGING_TYPE.cs | 22 + .../Windows/Windows/um/http/HTTP_LOG_DATA.cs | 13 + .../Windows/Windows/um/http/HTTP_LOG_DATA.xml | 11 + .../Windows/um/http/HTTP_LOG_DATA_TYPE.cs | 13 + .../Windows/um/http/HTTP_LOG_DATA_TYPE.xml | 11 + .../Windows/um/http/HTTP_LOG_FIELDS_DATA.cs | 113 + .../Windows/um/http/HTTP_LOG_FIELDS_DATA.xml | 96 + .../um/http/HTTP_MULTIPLE_KNOWN_HEADERS.cs | 24 + .../um/http/HTTP_MULTIPLE_KNOWN_HEADERS.xml | 40 + .../Windows/um/http/HTTP_PERFORMANCE_PARAM.cs | 21 + .../um/http/HTTP_PERFORMANCE_PARAM_TYPE.cs | 31 + .../Windows/um/http/HTTP_PROPERTY_FLAGS.cs | 31 + .../Windows/um/http/HTTP_PROPERTY_FLAGS.xml | 17 + .../um/http/HTTP_PROTECTION_LEVEL_INFO.cs | 16 + .../um/http/HTTP_PROTECTION_LEVEL_TYPE.cs | 19 + .../Windows/um/http/HTTP_QOS_SETTING_INFO.cs | 17 + .../Windows/um/http/HTTP_QOS_SETTING_INFO.xml | 14 + .../Windows/um/http/HTTP_QOS_SETTING_TYPE.cs | 19 + .../Windows/um/http/HTTP_QOS_SETTING_TYPE.xml | 21 + .../http/HTTP_QUERY_REQUEST_QUALIFIER_QUIC.cs | 14 + .../http/HTTP_QUERY_REQUEST_QUALIFIER_TCP.cs | 14 + .../Windows/um/http/HTTP_QUIC_API_TIMINGS.cs | 16 + .../http/HTTP_QUIC_CONNECTION_API_TIMINGS.cs | 61 + .../um/http/HTTP_QUIC_STREAM_API_TIMINGS.cs | 82 + .../um/http/HTTP_QUIC_STREAM_REQUEST_STATS.cs | 42 + .../Windows/um/http/HTTP_REQUEST_AUTH_INFO.cs | 58 + .../um/http/HTTP_REQUEST_AUTH_INFO.xml | 76 + .../Windows/um/http/HTTP_REQUEST_AUTH_TYPE.cs | 28 + .../um/http/HTTP_REQUEST_AUTH_TYPE.xml | 29 + .../http/HTTP_REQUEST_CHANNEL_BIND_STATUS.cs | 26 + .../http/HTTP_REQUEST_CHANNEL_BIND_STATUS.xml | 20 + .../Windows/um/http/HTTP_REQUEST_HEADERS.cs | 37 + .../Windows/um/http/HTTP_REQUEST_HEADERS.xml | 23 + .../Windows/um/http/HTTP_REQUEST_INFO.cs | 21 + .../Windows/um/http/HTTP_REQUEST_INFO.xml | 17 + .../Windows/um/http/HTTP_REQUEST_INFO_TYPE.cs | 46 + .../um/http/HTTP_REQUEST_INFO_TYPE.xml | 21 + .../Windows/um/http/HTTP_REQUEST_PROPERTY.cs | 46 + .../Windows/um/http/HTTP_REQUEST_PROPERTY.xml | 14 + .../um/http/HTTP_REQUEST_PROPERTY_SNI.cs | 27 + .../HTTP_REQUEST_PROPERTY_STREAM_ERROR.cs | 14 + .../HTTP_REQUEST_PROPERTY_STREAM_ERROR.xml | 11 + .../um/http/HTTP_REQUEST_SIZING_INFO.cs | 35 + .../um/http/HTTP_REQUEST_SIZING_TYPE.cs | 28 + .../um/http/HTTP_REQUEST_TIMING_INFO.cs | 27 + .../um/http/HTTP_REQUEST_TIMING_TYPE.cs | 103 + .../http/HTTP_REQUEST_TOKEN_BINDING_INFO.cs | 30 + .../Windows/um/http/HTTP_REQUEST_V1.cs | 74 + .../Windows/um/http/HTTP_REQUEST_V1.xml | 114 + .../Windows/um/http/HTTP_REQUEST_V2.cs | 21 + .../Windows/um/http/HTTP_REQUEST_V2.xml | 18 + .../Windows/um/http/HTTP_RESPONSE_HEADERS.cs | 37 + .../Windows/um/http/HTTP_RESPONSE_HEADERS.xml | 23 + .../Windows/um/http/HTTP_RESPONSE_INFO.cs | 21 + .../Windows/um/http/HTTP_RESPONSE_INFO.xml | 17 + .../um/http/HTTP_RESPONSE_INFO_TYPE.cs | 22 + .../um/http/HTTP_RESPONSE_INFO_TYPE.xml | 26 + .../Windows/um/http/HTTP_RESPONSE_V1.cs | 37 + .../Windows/um/http/HTTP_RESPONSE_V1.xml | 38 + .../Windows/um/http/HTTP_RESPONSE_V2.cs | 21 + .../Windows/um/http/HTTP_RESPONSE_V2.xml | 21 + .../Windows/Windows/um/http/HTTP_SCHEME.cs | 19 + ...HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.cs | 17 + ...TTP_SERVER_AUTHENTICATION_BASIC_PARAMS.xml | 20 + ...TTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.cs | 24 + ...TP_SERVER_AUTHENTICATION_DIGEST_PARAMS.xml | 29 + .../http/HTTP_SERVER_AUTHENTICATION_INFO.cs | 39 + .../http/HTTP_SERVER_AUTHENTICATION_INFO.xml | 153 + .../Windows/um/http/HTTP_SERVER_PROPERTY.cs | 52 + .../Windows/um/http/HTTP_SERVER_PROPERTY.xml | 69 + .../Windows/um/http/HTTP_SERVICE_BINDING_A.cs | 21 + .../um/http/HTTP_SERVICE_BINDING_A.xml | 17 + .../um/http/HTTP_SERVICE_BINDING_BASE.cs | 13 + .../um/http/HTTP_SERVICE_BINDING_TYPE.cs | 19 + .../um/http/HTTP_SERVICE_BINDING_TYPE.xml | 17 + .../Windows/um/http/HTTP_SERVICE_BINDING_W.cs | 21 + .../um/http/HTTP_SERVICE_BINDING_W.xml | 17 + .../um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.cs | 16 + .../um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.xml | 14 + .../um/http/HTTP_SERVICE_CONFIG_CACHE_SET.cs | 17 + .../um/http/HTTP_SERVICE_CONFIG_CACHE_SET.xml | 14 + .../Windows/um/http/HTTP_SERVICE_CONFIG_ID.cs | 52 + .../um/http/HTTP_SERVICE_CONFIG_ID.xml | 53 + .../HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.cs | 17 + .../HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.xml | 18 + .../HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.cs | 43 + .../HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.xml | 14 + .../um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.cs | 19 + .../http/HTTP_SERVICE_CONFIG_QUERY_TYPE.xml | 17 + .../http/HTTP_SERVICE_CONFIG_SETTING_KEY.cs | 16 + .../http/HTTP_SERVICE_CONFIG_SETTING_SET.cs | 17 + .../http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.cs | 13 + .../http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.xml | 11 + .../http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.cs | 20 + .../HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.xml | 49 + .../HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX.cs | 23 + .../http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.cs | 16 + .../http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.xml | 14 + .../HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX.cs | 16 + .../um/http/HTTP_SERVICE_CONFIG_SSL_KEY.cs | 14 + .../um/http/HTTP_SERVICE_CONFIG_SSL_KEY.xml | 14 + .../um/http/HTTP_SERVICE_CONFIG_SSL_KEY_EX.cs | 13 + .../um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.cs | 51 + .../um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.xml | 150 + .../http/HTTP_SERVICE_CONFIG_SSL_PARAM_EX.cs | 135 + .../um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.cs | 20 + .../um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.xml | 26 + .../http/HTTP_SERVICE_CONFIG_SSL_QUERY_EX.cs | 23 + .../um/http/HTTP_SERVICE_CONFIG_SSL_SET.cs | 16 + .../um/http/HTTP_SERVICE_CONFIG_SSL_SET.xml | 14 + .../um/http/HTTP_SERVICE_CONFIG_SSL_SET_EX.cs | 16 + .../http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.cs | 17 + .../http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.xml | 14 + .../http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.cs | 20 + .../HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.xml | 52 + .../HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX.cs | 23 + .../http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.cs | 16 + .../http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.xml | 14 + .../HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX.cs | 16 + .../http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.cs | 16 + .../http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.xml | 14 + .../http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.cs | 17 + .../http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.xml | 14 + .../um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.cs | 14 + .../http/HTTP_SERVICE_CONFIG_URLACL_KEY.xml | 11 + .../http/HTTP_SERVICE_CONFIG_URLACL_PARAM.cs | 14 + .../http/HTTP_SERVICE_CONFIG_URLACL_PARAM.xml | 11 + .../http/HTTP_SERVICE_CONFIG_URLACL_QUERY.cs | 20 + .../http/HTTP_SERVICE_CONFIG_URLACL_QUERY.xml | 29 + .../um/http/HTTP_SERVICE_CONFIG_URLACL_SET.cs | 16 + .../http/HTTP_SERVICE_CONFIG_URLACL_SET.xml | 14 + .../um/http/HTTP_SSL_CLIENT_CERT_INFO.cs | 29 + .../um/http/HTTP_SSL_CLIENT_CERT_INFO.xml | 31 + .../Windows/Windows/um/http/HTTP_SSL_INFO.cs | 40 + .../Windows/Windows/um/http/HTTP_SSL_INFO.xml | 32 + .../Windows/um/http/HTTP_SSL_PROTOCOL_INFO.cs | 38 + .../HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.cs | 34 + .../Windows/um/http/HTTP_STATE_INFO.cs | 16 + .../Windows/um/http/HTTP_STATE_INFO.xml | 20 + .../um/http/HTTP_TIMEOUT_LIMIT_INFO.cs | 32 + .../um/http/HTTP_TIMEOUT_LIMIT_INFO.xml | 47 + .../um/http/HTTP_TLS_RESTRICTIONS_PARAM.cs | 18 + .../HTTP_TLS_SESSION_TICKET_KEYS_PARAM.cs | 18 + .../Windows/um/http/HTTP_TRANSPORT_ADDRESS.cs | 18 + .../um/http/HTTP_TRANSPORT_ADDRESS.xml | 14 + .../Windows/um/http/HTTP_UNKNOWN_HEADER.cs | 24 + .../Windows/um/http/HTTP_UNKNOWN_HEADER.xml | 20 + .../Windows/Windows/um/http/HTTP_VERB.cs | 73 + .../Windows/Windows/um/http/HTTP_VERB.xml | 90 + .../Windows/Windows/um/http/HTTP_VERSION.cs | 16 + .../Windows/Windows/um/http/HTTP_VERSION.xml | 14 + .../http/HTTP_WINHTTP_FAST_FORWARDING_DATA.cs | 23 + .../Windows/um/http/HTTP_WSK_API_TIMINGS.cs | 58 + .../Windows/um/http/PHTTP_FEATURE_ID.xml | 23 + .../Windows/Windows/um/http/Windows.cs | 232 ++ .../Windows/Windows/um/http/Windows.xml | 2944 +++++++++++++++++ .../Windows/um/httpserv/CACHE_OPERATION.cs | 25 + .../Windows/um/httpserv/CGlobalModule.cs | 259 ++ .../Windows/um/httpserv/CHttpModule.cs | 459 +++ .../Interop/Windows/Windows/um/httpserv/GL.cs | 57 + .../um/httpserv/GLOBAL_NOTIFICATION_STATUS.cs | 16 + .../Windows/Windows/um/httpserv/HTTP.cs | 20 + .../HTTP_CONTEXT_INTERFACE_VERSION.cs | 11 + .../httpserv/HTTP_SERVER_INTERFACE_VERSION.cs | 16 + .../um/httpserv/IAuthenticationProvider.cs | 54 + .../Windows/um/httpserv/ICacheProvider.cs | 110 + .../httpserv/ICustomNotificationProvider.cs | 56 + .../IDispensedHttpModuleContextContainer.cs | 65 + .../IGlobalApplicationPreloadProvider.cs | 68 + .../IGlobalApplicationPreloadProvider2.cs | 76 + .../IGlobalConfigurationChangeProvider.cs | 56 + .../um/httpserv/IGlobalFileChangeProvider.cs | 70 + .../um/httpserv/IGlobalRSCAQueryProvider.cs | 114 + .../httpserv/IGlobalStopListeningProvider.cs | 54 + .../httpserv/IGlobalSuspendProcessCallback.cs | 54 + .../httpserv/IGlobalThreadCleanupProvider.cs | 54 + .../um/httpserv/IGlobalTraceEventProvider.cs | 82 + .../Windows/um/httpserv/IHttpApplication.cs | 89 + .../Windows/um/httpserv/IHttpApplication2.cs | 118 + .../um/httpserv/IHttpApplicationProvider.cs | 54 + .../IHttpApplicationResolveModulesProvider.cs | 79 + .../Windows/um/httpserv/IHttpCacheKey.cs | 101 + .../Windows/um/httpserv/IHttpCachePolicy.cs | 229 ++ .../Windows/um/httpserv/IHttpCachePolicy2.cs | 214 ++ .../um/httpserv/IHttpCacheSpecificData.cs | 125 + .../um/httpserv/IHttpCompletionInfo.cs | 57 + .../um/httpserv/IHttpCompletionInfo2.cs | 68 + .../Windows/um/httpserv/IHttpConnection.cs | 69 + .../IHttpConnectionModuleContextContainer.cs | 79 + .../httpserv/IHttpConnectionStoredContext.cs | 54 + .../Windows/um/httpserv/IHttpContext.cs | 584 ++++ .../Windows/um/httpserv/IHttpContext2.cs | 478 +++ .../Windows/um/httpserv/IHttpContext3.cs | 528 +++ .../Windows/um/httpserv/IHttpContext4.cs | 551 +++ .../Windows/um/httpserv/IHttpEventProvider.cs | 41 + .../Windows/um/httpserv/IHttpFileInfo.cs | 314 ++ .../Windows/um/httpserv/IHttpFileMonitor.cs | 55 + .../httpserv/IHttpModuleContextContainer.cs | 55 + .../Windows/um/httpserv/IHttpModuleFactory.cs | 55 + .../httpserv/IHttpModuleRegistrationInfo.cs | 115 + .../httpserv/IHttpModuleRegistrationInfo2.cs | 111 + .../um/httpserv/IHttpPerfCounterInfo.cs | 55 + .../Windows/um/httpserv/IHttpRequest.cs | 383 +++ .../Windows/um/httpserv/IHttpRequest2.cs | 317 ++ .../Windows/um/httpserv/IHttpRequest3.cs | 326 ++ .../Windows/um/httpserv/IHttpRequest4.cs | 339 ++ .../Windows/um/httpserv/IHttpResponse.cs | 429 +++ .../Windows/um/httpserv/IHttpResponse2.cs | 365 ++ .../Windows/um/httpserv/IHttpResponse3.cs | 378 +++ .../Windows/um/httpserv/IHttpResponse4.cs | 447 +++ .../Windows/um/httpserv/IHttpServer.cs | 390 +++ .../Windows/um/httpserv/IHttpServer2.cs | 388 +++ .../Windows/um/httpserv/IHttpServer3.cs | 386 +++ .../Windows/Windows/um/httpserv/IHttpSite.cs | 87 + .../Windows/um/httpserv/IHttpStoredContext.cs | 41 + .../Windows/um/httpserv/IHttpTokenEntry.cs | 150 + .../Windows/um/httpserv/IHttpTraceContext.cs | 99 + .../Windows/um/httpserv/IHttpUrlInfo.cs | 55 + .../Windows/Windows/um/httpserv/IHttpUser.cs | 191 ++ .../Windows/Windows/um/httpserv/IID.cs | 1509 +++++++++ .../um/httpserv/IMapHandlerProvider.cs | 82 + .../Windows/um/httpserv/IMapPathProvider.cs | 86 + .../Windows/um/httpserv/IMetadataInfo.cs | 87 + .../Windows/um/httpserv/IModuleAllocator.cs | 41 + .../um/httpserv/INamedContextContainer.cs | 55 + .../um/httpserv/IPreBeginRequestProvider.cs | 54 + .../um/httpserv/IReadEntityProvider.cs | 68 + .../um/httpserv/IReferencedMetadataInfo.cs | 103 + .../Windows/um/httpserv/IScriptMapInfo.cs | 199 ++ .../um/httpserv/ISendResponseProvider.cs | 126 + .../httpserv/REQUEST_NOTIFICATION_STATUS.cs | 19 + .../Windows/Windows/um/httpserv/Windows.cs | 122 + .../Windows/Windows/um/httptrace/GUID.cs | 189 ++ .../Windows/Windows/um/httptrace/HTTP.cs | 18 + .../um/httptrace/HTTP_TRACE_CONFIGURATION.cs | 27 + .../Windows/um/httptrace/HTTP_TRACE_EVENT.cs | 64 + .../um/httptrace/HTTP_TRACE_EVENT_ITEM.cs | 30 + .../Windows/um/httptrace/HTTP_TRACE_TYPE.cs | 46 + .../Windows/Windows/um/wpframework/DEFAULT.cs | 12 + .../ICustomAction2ResultCallback.cs | 61 + .../ICustomActionResultCallback.cs | 61 + .../um/wpframework/IHealthStatusCallback.cs | 61 + .../um/wpframework/IPmApplicationPreload.cs | 62 + .../um/wpframework/IPmCustomActions.cs | 61 + .../um/wpframework/IPmCustomActions2.cs | 75 + .../um/wpframework/IPmHealthAndIdleMonitor.cs | 75 + .../um/wpframework/IPmIdleTimeOutAction.cs | 61 + .../wpframework/IPmListenerChannelManager.cs | 75 + .../um/wpframework/IProtocolManager.cs | 89 + .../um/wpframework/IWorkerProcessFramework.cs | 89 + .../Windows/um/wpframework/IWpfActions.cs | 76 + .../um/wpframework/IWpfApplicationInfoUtil.cs | 61 + .../wpframework/IWpfApplicationPreloadUtil.cs | 75 + ...WpfExposeProtocolManagerCustomInterface.cs | 61 + .../IWpfListenerChannelCallback.cs | 117 + .../um/wpframework/IWpfReferencedObject.cs | 53 + .../Windows/um/wpframework/IWpfSettings.cs | 117 + .../um/wpframework/PM_INTERFACE_ID_ENUM.cs | 25 + .../um/wpframework/WPF_INTERFACE_ID_ENUM.cs | 28 + .../um/wpframework/WPF_SETTINGS_BOOL_ENUM.cs | 16 + .../um/wpframework/WPF_SETTINGS_DWORD_ENUM.cs | 28 + .../wpframework/WPF_SETTINGS_HANDLE_ENUM.cs | 13 + .../wpframework/WPF_SETTINGS_STRING_ENUM.cs | 28 + .../WPF_SETTINGS_ULONGLONG_ENUM.cs | 16 + .../Windows/Windows/um/wpframework/Windows.cs | 22 + .../Interop/Windows/ResolveDllImportTests.cs | 34 +- .../um/ahadmin/AppHostAdminManagerTests.cs | 22 + .../AppHostWritableAdminManagerTests.cs | 22 + .../um/ahadmin/IAppHostAdminManagerTests.cs | 22 + .../um/ahadmin/IAppHostChangeHandlerTests.cs | 22 + .../IAppHostChildElementCollectionTests.cs | 22 + .../ahadmin/IAppHostCollectionSchemaTests.cs | 22 + .../ahadmin/IAppHostConfigExceptionTests.cs | 22 + .../um/ahadmin/IAppHostConfigFileTests.cs | 22 + .../IAppHostConfigLocationCollectionTests.cs | 22 + .../um/ahadmin/IAppHostConfigLocationTests.cs | 22 + .../um/ahadmin/IAppHostConfigManagerTests.cs | 22 + .../IAppHostConstantValueCollectionTests.cs | 22 + .../um/ahadmin/IAppHostConstantValueTests.cs | 22 + .../ahadmin/IAppHostElementCollectionTests.cs | 22 + .../ahadmin/IAppHostElementExtensionTests.cs | 22 + .../IAppHostElementSchemaCollectionTests.cs | 22 + .../um/ahadmin/IAppHostElementSchemaTests.cs | 22 + .../um/ahadmin/IAppHostElementTests.cs | 22 + .../ahadmin/IAppHostMappingExtensionTests.cs | 22 + .../ahadmin/IAppHostMethodCollectionTests.cs | 22 + .../ahadmin/IAppHostMethodExtensionTests.cs | 22 + .../um/ahadmin/IAppHostMethodInstanceTests.cs | 22 + .../um/ahadmin/IAppHostMethodSchemaTests.cs | 22 + .../Windows/um/ahadmin/IAppHostMethodTests.cs | 22 + .../um/ahadmin/IAppHostPathMapper2Tests.cs | 22 + .../um/ahadmin/IAppHostPathMapperTests.cs | 22 + .../IAppHostPropertyCollectionTests.cs | 22 + .../ahadmin/IAppHostPropertyExceptionTests.cs | 22 + .../ahadmin/IAppHostPropertyExtensionTests.cs | 22 + .../IAppHostPropertySchemaCollectionTests.cs | 22 + .../um/ahadmin/IAppHostPropertySchemaTests.cs | 22 + .../um/ahadmin/IAppHostPropertyTests.cs | 22 + ...AppHostSectionDefinitionCollectionTests.cs | 22 + .../ahadmin/IAppHostSectionDefinitionTests.cs | 22 + .../um/ahadmin/IAppHostSectionGroupTests.cs | 22 + .../IAppHostWritableAdminManagerTests.cs | 22 + .../httpserv/IAuthenticationProviderTests.cs | 22 + .../um/httpserv/ICacheProviderTests.cs | 22 + .../ICustomNotificationProviderTests.cs | 22 + ...ispensedHttpModuleContextContainerTests.cs | 22 + ...IGlobalApplicationPreloadProvider2Tests.cs | 22 + .../IGlobalApplicationPreloadProviderTests.cs | 22 + ...IGlobalConfigurationChangeProviderTests.cs | 22 + .../IGlobalFileChangeProviderTests.cs | 22 + .../httpserv/IGlobalRSCAQueryProviderTests.cs | 22 + .../IGlobalStopListeningProviderTests.cs | 22 + .../IGlobalSuspendProcessCallbackTests.cs | 22 + .../IGlobalThreadCleanupProviderTests.cs | 22 + .../IGlobalTraceEventProviderTests.cs | 22 + .../um/httpserv/IHttpApplication2Tests.cs | 22 + .../httpserv/IHttpApplicationProviderTests.cs | 22 + ...pApplicationResolveModulesProviderTests.cs | 22 + .../um/httpserv/IHttpApplicationTests.cs | 22 + .../Windows/um/httpserv/IHttpCacheKeyTests.cs | 22 + .../um/httpserv/IHttpCachePolicy2Tests.cs | 22 + .../um/httpserv/IHttpCachePolicyTests.cs | 22 + .../httpserv/IHttpCacheSpecificDataTests.cs | 22 + .../um/httpserv/IHttpCompletionInfo2Tests.cs | 22 + .../um/httpserv/IHttpCompletionInfoTests.cs | 22 + ...tpConnectionModuleContextContainerTests.cs | 22 + .../IHttpConnectionStoredContextTests.cs | 22 + .../um/httpserv/IHttpConnectionTests.cs | 22 + .../Windows/um/httpserv/IHttpContext2Tests.cs | 22 + .../Windows/um/httpserv/IHttpContext3Tests.cs | 22 + .../Windows/um/httpserv/IHttpContext4Tests.cs | 22 + .../Windows/um/httpserv/IHttpContextTests.cs | 22 + .../um/httpserv/IHttpEventProviderTests.cs | 22 + .../Windows/um/httpserv/IHttpFileInfoTests.cs | 22 + .../um/httpserv/IHttpFileMonitorTests.cs | 22 + .../IHttpModuleContextContainerTests.cs | 22 + .../um/httpserv/IHttpModuleFactoryTests.cs | 22 + .../IHttpModuleRegistrationInfo2Tests.cs | 22 + .../IHttpModuleRegistrationInfoTests.cs | 22 + .../um/httpserv/IHttpPerfCounterInfoTests.cs | 22 + .../Windows/um/httpserv/IHttpRequest2Tests.cs | 22 + .../Windows/um/httpserv/IHttpRequest3Tests.cs | 22 + .../Windows/um/httpserv/IHttpRequest4Tests.cs | 22 + .../Windows/um/httpserv/IHttpRequestTests.cs | 22 + .../um/httpserv/IHttpResponse2Tests.cs | 22 + .../um/httpserv/IHttpResponse3Tests.cs | 22 + .../um/httpserv/IHttpResponse4Tests.cs | 22 + .../Windows/um/httpserv/IHttpResponseTests.cs | 22 + .../Windows/um/httpserv/IHttpServer2Tests.cs | 22 + .../Windows/um/httpserv/IHttpServer3Tests.cs | 22 + .../Windows/um/httpserv/IHttpServerTests.cs | 22 + .../Windows/um/httpserv/IHttpSiteTests.cs | 22 + .../um/httpserv/IHttpStoredContextTests.cs | 22 + .../um/httpserv/IHttpTokenEntryTests.cs | 22 + .../um/httpserv/IHttpTraceContextTests.cs | 22 + .../Windows/um/httpserv/IHttpUrlInfoTests.cs | 22 + .../Windows/um/httpserv/IHttpUserTests.cs | 22 + .../um/httpserv/IMapHandlerProviderTests.cs | 22 + .../um/httpserv/IMapPathProviderTests.cs | 22 + .../Windows/um/httpserv/IMetadataInfoTests.cs | 22 + .../um/httpserv/IModuleAllocatorTests.cs | 22 + .../httpserv/INamedContextContainerTests.cs | 22 + .../httpserv/IPreBeginRequestProviderTests.cs | 22 + .../um/httpserv/IReadEntityProviderTests.cs | 22 + .../httpserv/IReferencedMetadataInfoTests.cs | 22 + .../um/httpserv/IScriptMapInfoTests.cs | 22 + .../um/httpserv/ISendResponseProviderTests.cs | 22 + .../Windows/Windows/um/httptrace/GUIDTests.cs | 63 + 478 files changed, 32954 insertions(+), 10 deletions(-) create mode 100644 generation/Windows/um/ahadmin/generate.rsp create mode 100644 generation/Windows/um/ahadmin/header.txt create mode 100644 generation/Windows/um/ahadmin/um-ahadmin.h create mode 100644 generation/Windows/um/http/generate.rsp create mode 100644 generation/Windows/um/http/header.txt create mode 100644 generation/Windows/um/http/um-http.h create mode 100644 generation/Windows/um/httpserv/generate.rsp create mode 100644 generation/Windows/um/httpserv/header.txt create mode 100644 generation/Windows/um/httpserv/um-httpserv.h create mode 100644 generation/Windows/um/httptrace/generate.rsp create mode 100644 generation/Windows/um/httptrace/header.txt create mode 100644 generation/Windows/um/httptrace/um-httptrace.h create mode 100644 generation/Windows/um/wpframework/generate.rsp create mode 100644 generation/Windows/um/wpframework/header.txt create mode 100644 generation/Windows/um/wpframework/um-wpframework.h create mode 100644 sources/Interop/Windows/WinRT/winrt/windows.foundation/DateTime.xml create mode 100644 sources/Interop/Windows/WinRT/winrt/windows.foundation/TimeSpan.xml create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/AppHostAdminManager.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManager.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManager.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandler.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchema.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigException.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFile.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocation.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManager.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValue.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostElement.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtension.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchema.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtension.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethod.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtension.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstance.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchema.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostProperty.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyException.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtension.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchema.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinition.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollection.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroup.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManager.cs create mode 100644 sources/Interop/Windows/Windows/um/ahadmin/IID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP2_SETTINGS_LIMITS_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP2_WINDOW_SIZE_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_AUTH_STATUS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_ENTRY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CHANNEL_BIND_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_ERROR_HEADERS_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_FAST_FORWARD_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_FEATURE_ID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_FLOWRATE_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_ROLLOVER_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_QUIC.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_TCP.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUIC_API_TIMINGS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUIC_CONNECTION_API_TIMINGS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_API_TIMINGS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_REQUEST_STATS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_SNI.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TOKEN_BINDING_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SCHEME.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_BASE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_PROTOCOL_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TLS_RESTRICTIONS_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TLS_SESSION_TICKET_KEYS_PARAM.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_VERB.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_VERB.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_VERSION.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_VERSION.xml create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_WINHTTP_FAST_FORWARDING_DATA.cs create mode 100644 sources/Interop/Windows/Windows/um/http/HTTP_WSK_API_TIMINGS.cs create mode 100644 sources/Interop/Windows/Windows/um/http/PHTTP_FEATURE_ID.xml create mode 100644 sources/Interop/Windows/Windows/um/http/Windows.cs create mode 100644 sources/Interop/Windows/Windows/um/http/Windows.xml create mode 100644 sources/Interop/Windows/Windows/um/httpserv/CACHE_OPERATION.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/CGlobalModule.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/CHttpModule.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/GL.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/GLOBAL_NOTIFICATION_STATUS.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/HTTP.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/HTTP_CONTEXT_INTERFACE_VERSION.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/HTTP_SERVER_INTERFACE_VERSION.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IAuthenticationProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/ICacheProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/ICustomNotificationProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainer.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallback.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpApplication.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpApplication2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCacheKey.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificData.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpConnection.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainer.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContext.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpContext.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpContext2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpContext3.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpContext4.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpEventProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpFileInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpFileMonitor.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainer.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpModuleFactory.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpRequest.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpRequest2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpRequest3.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpRequest4.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpResponse.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpResponse2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpResponse3.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpResponse4.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpServer.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpServer2.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpServer3.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpSite.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpStoredContext.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpTokenEntry.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpTraceContext.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpUrlInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IHttpUser.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IID.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IMapHandlerProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IMapPathProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IMetadataInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IModuleAllocator.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/INamedContextContainer.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IReadEntityProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/IScriptMapInfo.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/ISendResponseProvider.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/REQUEST_NOTIFICATION_STATUS.cs create mode 100644 sources/Interop/Windows/Windows/um/httpserv/Windows.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/GUID.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/HTTP.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_CONFIGURATION.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT_ITEM.cs create mode 100644 sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_TYPE.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/DEFAULT.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/ICustomAction2ResultCallback.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/ICustomActionResultCallback.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IHealthStatusCallback.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmApplicationPreload.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions2.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmHealthAndIdleMonitor.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmIdleTimeOutAction.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IPmListenerChannelManager.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IProtocolManager.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWorkerProcessFramework.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfActions.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationInfoUtil.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationPreloadUtil.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfExposeProtocolManagerCustomInterface.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfListenerChannelCallback.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfReferencedObject.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/IWpfSettings.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/PM_INTERFACE_ID_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_INTERFACE_ID_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_BOOL_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_DWORD_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_HANDLE_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_STRING_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_ULONGLONG_ENUM.cs create mode 100644 sources/Interop/Windows/Windows/um/wpframework/Windows.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/AppHostAdminManagerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManagerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManagerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandlerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchemaTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigExceptionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFileTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManagerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtensionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtensionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtensionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstanceTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchemaTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapperTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExceptionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtensionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroupTests.cs create mode 100644 tests/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManagerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IAuthenticationProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/ICacheProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/ICustomNotificationProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallbackTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpApplication2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCacheKeyTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicyTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificDataTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContextTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpContext2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpContext3Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpContext4Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpContextTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpEventProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpFileInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpFileMonitorTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpModuleFactoryTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpRequest2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpRequest3Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpRequest4Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpRequestTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpResponse2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpResponse3Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpResponse4Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpResponseTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpServer2Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpServer3Tests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpServerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpSiteTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpStoredContextTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpTokenEntryTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpTraceContextTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpUrlInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IHttpUserTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IMapHandlerProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IMapPathProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IMetadataInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IModuleAllocatorTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/INamedContextContainerTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IReadEntityProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/IScriptMapInfoTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httpserv/ISendResponseProviderTests.cs create mode 100644 tests/Interop/Windows/Windows/um/httptrace/GUIDTests.cs diff --git a/generation/WinRT/winrt/inspectable/generate.rsp b/generation/WinRT/winrt/inspectable/generate.rsp index 21c665f6be..92cb09cee0 100644 --- a/generation/WinRT/winrt/inspectable/generate.rsp +++ b/generation/WinRT/winrt/inspectable/generate.rsp @@ -25,5 +25,13 @@ HSTRING_UserSize64=combase HSTRING_UserUnmarshal=combase HSTRING_UserUnmarshal64=combase --with-attribute +HSTRING_UserFree64=SupportedOSPlatform("windows6.2") +HSTRING_UserFree=SupportedOSPlatform("windows6.2") +HSTRING_UserMarshal64=SupportedOSPlatform("windows6.2") +HSTRING_UserMarshal=SupportedOSPlatform("windows6.2") +HSTRING_UserSize64=SupportedOSPlatform("windows6.2") +HSTRING_UserSize=SupportedOSPlatform("windows6.2") +HSTRING_UserUnmarshal64=SupportedOSPlatform("windows6.2") +HSTRING_UserUnmarshal=SupportedOSPlatform("windows6.2") IInputPaneInterop=SupportedOSPlatform("windows6.2") IInspectable=SupportedOSPlatform("windows6.2") diff --git a/generation/WinRT/winrt/winstring/generate.rsp b/generation/WinRT/winrt/winstring/generate.rsp index 549ab332b8..bfe01cc32a 100644 --- a/generation/WinRT/winrt/winstring/generate.rsp +++ b/generation/WinRT/winrt/winstring/generate.rsp @@ -34,6 +34,10 @@ WindowsSubstringWithSpecifiedLength=combase WindowsTrimStringEnd=combase WindowsTrimStringStart=combase --with-attribute +HSTRING_UserFree=SupportedOSPlatform("windows6.2") +HSTRING_UserMarshal=SupportedOSPlatform("windows6.2") +HSTRING_UserSize=SupportedOSPlatform("windows6.2") +HSTRING_UserUnmarshal=SupportedOSPlatform("windows6.2") WindowsCompareStringOrdinal=SupportedOSPlatform("windows6.2") WindowsConcatString=SupportedOSPlatform("windows6.2") WindowsCreateString=SupportedOSPlatform("windows6.2") diff --git a/generation/Windows/um/AppxPackaging/generate.rsp b/generation/Windows/um/AppxPackaging/generate.rsp index b94987767e..c917bf2436 100644 --- a/generation/Windows/um/AppxPackaging/generate.rsp +++ b/generation/Windows/um/AppxPackaging/generate.rsp @@ -58,6 +58,7 @@ IAppxContentGroupsEnumerator=SupportedOSPlatform("windows10.0") IAppxEncryptedBundleWriter2=SupportedOSPlatform("windows10.0") IAppxEncryptedBundleWriter3=SupportedOSPlatform("windows10.0") IAppxEncryptedBundleWriter=SupportedOSPlatform("windows10.0.14393.0") +IAppxEncryptedPackageWriter2=SupportedOSPlatform("windows10.0") IAppxEncryptedPackageWriter2=SupportedOSPlatform("windows10.0.14393.0") IAppxEncryptedPackageWriter=SupportedOSPlatform("windows10.0.14393.0") IAppxEncryptionFactory2=SupportedOSPlatform("windows10.0") diff --git a/generation/Windows/um/ahadmin/generate.rsp b/generation/Windows/um/ahadmin/generate.rsp new file mode 100644 index 0000000000..a71837c507 --- /dev/null +++ b/generation/Windows/um/ahadmin/generate.rsp @@ -0,0 +1,14 @@ +@../../../settings.rsp +@../../../remap.rsp +--file +um-ahadmin.h +--methodClassName +Windows +--namespace +TerraFX.Interop.Windows +--output +../../../../sources/Interop/Windows/Windows/um/ahadmin +--test-output +../../../../tests/Interop/Windows/Windows/um/ahadmin +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/ahadmin.h diff --git a/generation/Windows/um/ahadmin/header.txt b/generation/Windows/um/ahadmin/header.txt new file mode 100644 index 0000000000..fa05ba6840 --- /dev/null +++ b/generation/Windows/um/ahadmin/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/Windows/um/ahadmin/um-ahadmin.h b/generation/Windows/um/ahadmin/um-ahadmin.h new file mode 100644 index 0000000000..d11ac91a05 --- /dev/null +++ b/generation/Windows/um/ahadmin/um-ahadmin.h @@ -0,0 +1,2 @@ +#include "..\..\..\TerraFX.h" +#include diff --git a/generation/Windows/um/http/generate.rsp b/generation/Windows/um/http/generate.rsp new file mode 100644 index 0000000000..bfe22dcfe8 --- /dev/null +++ b/generation/Windows/um/http/generate.rsp @@ -0,0 +1,79 @@ +@../../../settings.rsp +@../../../remap.rsp +--exclude +HTTPAPI_EQUAL_VERSION +HTTPAPI_GREATER_VERSION +HTTPAPI_LESS_VERSION +HTTPAPI_VERSION_GREATER_OR_EQUAL +HTTP_EQUAL_VERSION +HTTP_GREATER_EQUAL_VERSION +HTTP_GREATER_VERSION +HTTP_IS_NULL_ID +HTTP_LESS_EQUAL_VERSION +HTTP_LESS_VERSION +HTTP_NOT_EQUAL_VERSION +HTTP_SET_NULL_ID +HTTP_SET_VERSION +--file +um-http.h +--methodClassName +Windows +--namespace +TerraFX.Interop.Windows +--output +../../../../sources/Interop/Windows/Windows/um/http +--test-output +../../../../tests/Interop/Windows/Windows/um/http +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/http.h +--with-attribute +HttpDeclarePush=SupportedOSPlatform("windows10.0") +HttpDelegateRequestEx=SupportedOSPlatform("windows10.0.19043.0") +HttpFindUrlGroupId=SupportedOSPlatform("windows10.0.19043.0") +HttpIsFeatureSupported=SupportedOSPlatform("windows10.0.19043.0") +HttpPrepareUrl=SupportedOSPlatform("windows6.2") +HttpUpdateServiceConfiguration=SupportedOSPlatform("windows10.0.15063.0") +--with-librarypath +HttpAddFragmentToCache=httpapi +HttpAddUrl=httpapi +HttpAddUrlToUrlGroup=httpapi +HttpCancelHttpRequest=httpapi +HttpCloseRequestQueue=httpapi +HttpCloseServerSession=httpapi +HttpCloseUrlGroup=httpapi +HttpCreateHttpHandle=httpapi +HttpCreateRequestQueue=httpapi +HttpCreateServerSession=httpapi +HttpCreateUrlGroup=httpapi +HttpDeclarePush=httpapi +HttpDelegateRequestEx=httpapi +HttpDeleteServiceConfiguration=httpapi +HttpFindUrlGroupId=httpapi +HttpFlushResponseCache=httpapi +HttpGetExtension=httpapi +HttpInitialize=httpapi +HttpIsFeatureSupported=httpapi +HttpPrepareUrl=httpapi +HttpQueryRequestQueueProperty=httpapi +HttpQueryServerSessionProperty=httpapi +HttpQueryServiceConfiguration=httpapi +HttpQueryUrlGroupProperty=httpapi +HttpReadFragmentFromCache=httpapi +HttpReceiveClientCertificate=httpapi +HttpReceiveHttpRequest=httpapi +HttpReceiveRequestEntityBody=httpapi +HttpRemoveUrl=httpapi +HttpRemoveUrlFromUrlGroup=httpapi +HttpSendHttpResponse=httpapi +HttpSendResponseEntityBody=httpapi +HttpSetRequestProperty=httpapi +HttpSetRequestQueueProperty=httpapi +HttpSetServerSessionProperty=httpapi +HttpSetServiceConfiguration=httpapi +HttpSetUrlGroupProperty=httpapi +HttpShutdownRequestQueue=httpapi +HttpTerminate=httpapi +HttpUpdateServiceConfiguration=httpapi +HttpWaitForDemandStart=httpapi +HttpWaitForDisconnect=httpapi +HttpWaitForDisconnectEx=httpapi diff --git a/generation/Windows/um/http/header.txt b/generation/Windows/um/http/header.txt new file mode 100644 index 0000000000..4be8eb66aa --- /dev/null +++ b/generation/Windows/um/http/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/Windows/um/http/um-http.h b/generation/Windows/um/http/um-http.h new file mode 100644 index 0000000000..b9ad33973c --- /dev/null +++ b/generation/Windows/um/http/um-http.h @@ -0,0 +1,2 @@ +#include "..\..\..\TerraFX.h" +#include diff --git a/generation/Windows/um/httpserv/generate.rsp b/generation/Windows/um/httpserv/generate.rsp new file mode 100644 index 0000000000..616a8e764a --- /dev/null +++ b/generation/Windows/um/httpserv/generate.rsp @@ -0,0 +1,14 @@ +@../../../settings.rsp +@../../../remap.rsp +--file +um-httpserv.h +--methodClassName +Windows +--namespace +TerraFX.Interop.Windows +--output +../../../../sources/Interop/Windows/Windows/um/httpserv +--test-output +../../../../tests/Interop/Windows/Windows/um/httpserv +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/httpserv.h diff --git a/generation/Windows/um/httpserv/header.txt b/generation/Windows/um/httpserv/header.txt new file mode 100644 index 0000000000..59826748e2 --- /dev/null +++ b/generation/Windows/um/httpserv/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/Windows/um/httpserv/um-httpserv.h b/generation/Windows/um/httpserv/um-httpserv.h new file mode 100644 index 0000000000..b1709f1ad9 --- /dev/null +++ b/generation/Windows/um/httpserv/um-httpserv.h @@ -0,0 +1,2 @@ +#include "..\..\..\TerraFX.h" +#include diff --git a/generation/Windows/um/httptrace/generate.rsp b/generation/Windows/um/httptrace/generate.rsp new file mode 100644 index 0000000000..ad51723c6b --- /dev/null +++ b/generation/Windows/um/httptrace/generate.rsp @@ -0,0 +1,14 @@ +@../../../settings.rsp +@../../../remap.rsp +--file +um-httptrace.h +--methodClassName +Windows +--namespace +TerraFX.Interop.Windows +--output +../../../../sources/Interop/Windows/Windows/um/httptrace +--test-output +../../../../tests/Interop/Windows/Windows/um/httptrace +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/httptrace.h diff --git a/generation/Windows/um/httptrace/header.txt b/generation/Windows/um/httptrace/header.txt new file mode 100644 index 0000000000..89b9f2a308 --- /dev/null +++ b/generation/Windows/um/httptrace/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/Windows/um/httptrace/um-httptrace.h b/generation/Windows/um/httptrace/um-httptrace.h new file mode 100644 index 0000000000..0f6f53c054 --- /dev/null +++ b/generation/Windows/um/httptrace/um-httptrace.h @@ -0,0 +1,2 @@ +#include "..\..\..\TerraFX.h" +#include diff --git a/generation/Windows/um/wpframework/generate.rsp b/generation/Windows/um/wpframework/generate.rsp new file mode 100644 index 0000000000..7c68a231f5 --- /dev/null +++ b/generation/Windows/um/wpframework/generate.rsp @@ -0,0 +1,16 @@ +@../../../settings.rsp +@../../../remap.rsp +--file +um-wpframework.h +--methodClassName +Windows +--namespace +TerraFX.Interop.Windows +--output +../../../../sources/Interop/Windows/Windows/um/wpframework +--test-output +../../../../tests/Interop/Windows/Windows/um/wpframework +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um/wpframework.h +--with-librarypath +LoadManagedRuntime=webengine4 diff --git a/generation/Windows/um/wpframework/header.txt b/generation/Windows/um/wpframework/header.txt new file mode 100644 index 0000000000..043bcdffbd --- /dev/null +++ b/generation/Windows/um/wpframework/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/Windows/um/wpframework/um-wpframework.h b/generation/Windows/um/wpframework/um-wpframework.h new file mode 100644 index 0000000000..6b16d33b15 --- /dev/null +++ b/generation/Windows/um/wpframework/um-wpframework.h @@ -0,0 +1,2 @@ +#include "..\..\..\TerraFX.h" +#include diff --git a/generation/remap-members.rsp b/generation/remap-members.rsp index 9f94c8ddb7..4b73691f27 100644 --- a/generation/remap-members.rsp +++ b/generation/remap-members.rsp @@ -1,4 +1,5 @@ --remap +CHttpModule.~CHttpModule():void=@Destructor GetEnvironmentStrings():LPCH=@GetEnvironmentStringsA ID2D1DeviceContext4.DrawTextW=@DrawText ID2D1RenderTarget.DrawTextW=@DrawText @@ -7,6 +8,8 @@ ID3D12InfoQueue.GetMessageW=@GetMessage IDWriteFontFace.GetGlyphIndicesW=@GetGlyphIndices IDxDiagContainer.GetPropW=@GetProp IDXGIInfoQueue.GetMessageW=@GetMessage +IHttpRequest.GetRawHttpRequest():const HTTP_REQUEST *=@GetRawHttpRequestConst +IHttpResponse.GetRawHttpResponse():const HTTP_RESPONSE *=@GetRawHttpRequestConst IMediaSeeking.GetTimeFormatW=@GetTimeFormat IMFAsyncResult.GetObjectW=@GetObject IMFPMediaItem.GetObjectW=@GetObject diff --git a/generation/remap-types.rsp b/generation/remap-types.rsp index 88ef59918d..9a350ee8ac 100644 --- a/generation/remap-types.rsp +++ b/generation/remap-types.rsp @@ -1146,6 +1146,7 @@ ID2D1SimplifiedGeometrySink=ID2D1SimplifiedGeometrySink ID3D10Blob=@ID3DBlob ID3DInclude=ID3DInclude IDxcBlobWide=IDxcBlobUtf16 +IHttpApplicationProvider=@IHttpApplicationProvider ima_adpcmwaveformat_tag=IMAADPCMWAVEFORMAT in6_addr=IN6_ADDR in6_pktinfo=IN6_PKTINFO @@ -3785,8 +3786,133 @@ _HTML_PAINT_DRAW_INFO_FLAGS=HTML_PAINT_DRAW_INFO_FLAGS _HTML_PAINT_EVENT_FLAGS=HTML_PAINT_EVENT_FLAGS _HTML_PAINT_XFORM=HTML_PAINT_XFORM _HTML_PAINT_ZORDER=HTML_PAINT_ZORDER +_HTTP2_SETTINGS_LIMITS_PARAM=HTTP2_SETTINGS_LIMITS_PARAM +_HTTP2_WINDOW_SIZE_PARAM=HTTP2_WINDOW_SIZE_PARAM +_HTTPAPI_VERSION=HTTPAPI_VERSION _HTTPSPolicyCallbackData=HTTPSPolicyCallbackData +_HTTP_503_RESPONSE_VERBOSITY=HTTP_503_RESPONSE_VERBOSITY +_HTTP_AUTHENTICATION_HARDENING_LEVELS=HTTP_AUTHENTICATION_HARDENING_LEVELS +_HTTP_AUTH_STATUS=HTTP_AUTH_STATUS +_HTTP_BANDWIDTH_LIMIT_INFO=HTTP_BANDWIDTH_LIMIT_INFO +_HTTP_BINDING_INFO=HTTP_BINDING_INFO +_HTTP_BYTE_RANGE=HTTP_BYTE_RANGE +_HTTP_CACHE_POLICY=HTTP_CACHE_POLICY +_HTTP_CACHE_POLICY_TYPE=HTTP_CACHE_POLICY_TYPE +_HTTP_CERT_CONFIG_ENTRY=HTTP_CERT_CONFIG_ENTRY +_HTTP_CERT_CONFIG_PARAM=HTTP_CERT_CONFIG_PARAM +_HTTP_CHANNEL_BIND_INFO=HTTP_CHANNEL_BIND_INFO +_HTTP_CONNECTION_LIMIT_INFO=HTTP_CONNECTION_LIMIT_INFO +_HTTP_COOKED_URL=HTTP_COOKED_URL +_HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID=HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID +_HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO=HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO +_HTTP_DATA_CHUNK=HTTP_DATA_CHUNK +_HTTP_DATA_CHUNK_TYPE=HTTP_DATA_CHUNK_TYPE +_HTTP_DELEGATE_REQUEST_PROPERTY_ID=HTTP_DELEGATE_REQUEST_PROPERTY_ID +_HTTP_DELEGATE_REQUEST_PROPERTY_INFO=HTTP_DELEGATE_REQUEST_PROPERTY_INFO +_HTTP_ENABLED_STATE=HTTP_ENABLED_STATE +_HTTP_ERROR_HEADERS_PARAM=HTTP_ERROR_HEADERS_PARAM +_HTTP_FAST_FORWARD_INFO=HTTP_FAST_FORWARD_INFO +_HTTP_FEATURE_ID=HTTP_FEATURE_ID +_HTTP_FLOWRATE_INFO=HTTP_FLOWRATE_INFO +_HTTP_HEADER_ID=HTTP_HEADER_ID +_HTTP_KNOWN_HEADER=HTTP_KNOWN_HEADER +_HTTP_LISTEN_ENDPOINT_INFO=HTTP_LISTEN_ENDPOINT_INFO +_HTTP_LOGGING_INFO=HTTP_LOGGING_INFO +_HTTP_LOGGING_ROLLOVER_TYPE=HTTP_LOGGING_ROLLOVER_TYPE +_HTTP_LOGGING_TYPE=HTTP_LOGGING_TYPE +_HTTP_LOG_DATA=HTTP_LOG_DATA +_HTTP_LOG_DATA_TYPE=HTTP_LOG_DATA_TYPE +_HTTP_LOG_FIELDS_DATA=HTTP_LOG_FIELDS_DATA +_HTTP_MULTIPLE_KNOWN_HEADERS=HTTP_MULTIPLE_KNOWN_HEADERS +_HTTP_PERFORMANCE_PARAM=HTTP_PERFORMANCE_PARAM +_HTTP_PERFORMANCE_PARAM_TYPE=HTTP_PERFORMANCE_PARAM_TYPE +_HTTP_PROPERTY_FLAGS=HTTP_PROPERTY_FLAGS +_HTTP_PROTECTION_LEVEL_INFO=HTTP_PROTECTION_LEVEL_INFO +_HTTP_PROTECTION_LEVEL_TYPE=HTTP_PROTECTION_LEVEL_TYPE +_HTTP_QOS_SETTING_INFO=HTTP_QOS_SETTING_INFO +_HTTP_QOS_SETTING_TYPE=HTTP_QOS_SETTING_TYPE +_HTTP_QUERY_REQUEST_QUALIFIER_QUIC=HTTP_QUERY_REQUEST_QUALIFIER_QUIC +_HTTP_QUERY_REQUEST_QUALIFIER_TCP=HTTP_QUERY_REQUEST_QUALIFIER_TCP +_HTTP_QUIC_API_TIMINGS=HTTP_QUIC_API_TIMINGS +_HTTP_QUIC_CONNECTION_API_TIMINGS=HTTP_QUIC_CONNECTION_API_TIMINGS +_HTTP_QUIC_STREAM_API_TIMINGS=HTTP_QUIC_STREAM_API_TIMINGS +_HTTP_QUIC_STREAM_REQUEST_STATS=HTTP_QUIC_STREAM_REQUEST_STATS +_HTTP_REQUEST_AUTH_INFO=HTTP_REQUEST_AUTH_INFO +_HTTP_REQUEST_AUTH_TYPE=HTTP_REQUEST_AUTH_TYPE +_HTTP_REQUEST_CHANNEL_BIND_STATUS=HTTP_REQUEST_CHANNEL_BIND_STATUS +_HTTP_REQUEST_HEADERS=HTTP_REQUEST_HEADERS +_HTTP_REQUEST_INFO=HTTP_REQUEST_INFO +_HTTP_REQUEST_INFO_TYPE=HTTP_REQUEST_INFO_TYPE +_HTTP_REQUEST_PROPERTY=HTTP_REQUEST_PROPERTY +_HTTP_REQUEST_PROPERTY_SNI=HTTP_REQUEST_PROPERTY_SNI +_HTTP_REQUEST_PROPERTY_STREAM_ERROR=HTTP_REQUEST_PROPERTY_STREAM_ERROR +_HTTP_REQUEST_SIZING_INFO=HTTP_REQUEST_SIZING_INFO +_HTTP_REQUEST_SIZING_TYPE=HTTP_REQUEST_SIZING_TYPE +_HTTP_REQUEST_TIMING_INFO=HTTP_REQUEST_TIMING_INFO +_HTTP_REQUEST_TIMING_TYPE=HTTP_REQUEST_TIMING_TYPE +_HTTP_REQUEST_TOKEN_BINDING_INFO=HTTP_REQUEST_TOKEN_BINDING_INFO +_HTTP_REQUEST_V1=HTTP_REQUEST_V1 +_HTTP_REQUEST_V2=HTTP_REQUEST_V2 +_HTTP_RESPONSE_HEADERS=HTTP_RESPONSE_HEADERS +_HTTP_RESPONSE_INFO=HTTP_RESPONSE_INFO +_HTTP_RESPONSE_INFO_TYPE=HTTP_RESPONSE_INFO_TYPE +_HTTP_RESPONSE_V1=HTTP_RESPONSE_V1 +_HTTP_RESPONSE_V2=HTTP_RESPONSE_V2 +_HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS=HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS +_HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS=HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS +_HTTP_SERVER_AUTHENTICATION_INFO=HTTP_SERVER_AUTHENTICATION_INFO +_HTTP_SERVER_PROPERTY=HTTP_SERVER_PROPERTY +_HTTP_SERVICE_BINDING_A=HTTP_SERVICE_BINDING_A +_HTTP_SERVICE_BINDING_BASE=HTTP_SERVICE_BINDING_BASE +_HTTP_SERVICE_BINDING_TYPE=HTTP_SERVICE_BINDING_TYPE +_HTTP_SERVICE_BINDING_W=HTTP_SERVICE_BINDING_W +_HTTP_SERVICE_CONFIG_CACHE_KEY=HTTP_SERVICE_CONFIG_CACHE_KEY +_HTTP_SERVICE_CONFIG_ID=HTTP_SERVICE_CONFIG_ID +_HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM=HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM +_HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY=HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY +_HTTP_SERVICE_CONFIG_QUERY_TYPE=HTTP_SERVICE_CONFIG_QUERY_TYPE +_HTTP_SERVICE_CONFIG_SETTING_KEY=HTTP_SERVICE_CONFIG_SETTING_KEY +_HTTP_SERVICE_CONFIG_SETTING_SET=HTTP_SERVICE_CONFIG_SETTING_SET +_HTTP_SERVICE_CONFIG_SSL_CCS_KEY=HTTP_SERVICE_CONFIG_SSL_CCS_KEY +_HTTP_SERVICE_CONFIG_SSL_CCS_QUERY=HTTP_SERVICE_CONFIG_SSL_CCS_QUERY +_HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX=HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX +_HTTP_SERVICE_CONFIG_SSL_CCS_SET=HTTP_SERVICE_CONFIG_SSL_CCS_SET +_HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX=HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX +_HTTP_SERVICE_CONFIG_SSL_KEY=HTTP_SERVICE_CONFIG_SSL_KEY +_HTTP_SERVICE_CONFIG_SSL_KEY_EX=HTTP_SERVICE_CONFIG_SSL_KEY_EX +_HTTP_SERVICE_CONFIG_SSL_PARAM=HTTP_SERVICE_CONFIG_SSL_PARAM +_HTTP_SERVICE_CONFIG_SSL_PARAM_EX=HTTP_SERVICE_CONFIG_SSL_PARAM_EX +_HTTP_SERVICE_CONFIG_SSL_QUERY=HTTP_SERVICE_CONFIG_SSL_QUERY +_HTTP_SERVICE_CONFIG_SSL_QUERY_EX=HTTP_SERVICE_CONFIG_SSL_QUERY_EX +_HTTP_SERVICE_CONFIG_SSL_SET=HTTP_SERVICE_CONFIG_SSL_SET +_HTTP_SERVICE_CONFIG_SSL_SET_EX=HTTP_SERVICE_CONFIG_SSL_SET_EX +_HTTP_SERVICE_CONFIG_SSL_SNI_KEY=HTTP_SERVICE_CONFIG_SSL_SNI_KEY +_HTTP_SERVICE_CONFIG_SSL_SNI_QUERY=HTTP_SERVICE_CONFIG_SSL_SNI_QUERY +_HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX=HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX +_HTTP_SERVICE_CONFIG_SSL_SNI_SET=HTTP_SERVICE_CONFIG_SSL_SNI_SET +_HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX=HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX +_HTTP_SERVICE_CONFIG_TIMEOUT_KEY=HTTP_SERVICE_CONFIG_TIMEOUT_KEY +_HTTP_SERVICE_CONFIG_TIMEOUT_SET=HTTP_SERVICE_CONFIG_TIMEOUT_SET +_HTTP_SERVICE_CONFIG_URLACL_KEY=HTTP_SERVICE_CONFIG_URLACL_KEY +_HTTP_SERVICE_CONFIG_URLACL_PARAM=HTTP_SERVICE_CONFIG_URLACL_PARAM +_HTTP_SERVICE_CONFIG_URLACL_QUERY=HTTP_SERVICE_CONFIG_URLACL_QUERY +_HTTP_SERVICE_CONFIG_URLACL_SET=HTTP_SERVICE_CONFIG_URLACL_SET +_HTTP_SSL_CLIENT_CERT_INFO=HTTP_SSL_CLIENT_CERT_INFO +_HTTP_SSL_INFO=HTTP_SSL_INFO +_HTTP_SSL_PROTOCOL_INFO=HTTP_SSL_PROTOCOL_INFO +_HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE=HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE +_HTTP_STATE_INFO=HTTP_STATE_INFO +_HTTP_TIMEOUT_LIMIT_INFO=HTTP_TIMEOUT_LIMIT_INFO +_HTTP_TLS_RESTRICTIONS_PARAM=HTTP_TLS_RESTRICTIONS_PARAM +_HTTP_TLS_SESSION_TICKET_KEYS_PARAM=HTTP_TLS_SESSION_TICKET_KEYS_PARAM +_HTTP_TRANSPORT_ADDRESS=HTTP_TRANSPORT_ADDRESS +_HTTP_UNKNOWN_HEADER=HTTP_UNKNOWN_HEADER +_HTTP_URI_SCHEME=HTTP_SCHEME +_HTTP_VERB=HTTP_VERB +_HTTP_VERSION=HTTP_VERSION _HTTP_VERSION_INFO=HTTP_VERSION_INFO +_HTTP_WINHTTP_FAST_FORWARDING_DATA=HTTP_WINHTTP_FAST_FORWARDING_DATA +_HTTP_WSK_API_TIMINGS=HTTP_WSK_API_TIMINGS _HT_OPTIONS=HT_OPTIONS _HT_RESULTS=HT_RESULTS _HYPER_SIZEDARR=HYPER_SIZEDARR diff --git a/sources/Interop/Windows/WinRT/winrt/windows.foundation/DateTime.xml b/sources/Interop/Windows/WinRT/winrt/windows.foundation/DateTime.xml new file mode 100644 index 0000000000..4100d45e3e --- /dev/null +++ b/sources/Interop/Windows/WinRT/winrt/windows.foundation/DateTime.xml @@ -0,0 +1,12 @@ + + + + + + Represents an instant in time, typically expressed as a date and time of day. + + + + The number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight on January 1, 1601 CE, UTC time. + + \ No newline at end of file diff --git a/sources/Interop/Windows/WinRT/winrt/windows.foundation/TimeSpan.xml b/sources/Interop/Windows/WinRT/winrt/windows.foundation/TimeSpan.xml new file mode 100644 index 0000000000..bc7d1fe48f --- /dev/null +++ b/sources/Interop/Windows/WinRT/winrt/windows.foundation/TimeSpan.xml @@ -0,0 +1,12 @@ + + + + + + Represents a time interval. + + + + The time interval, in 100-nanosecond units. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/ahadmin/AppHostAdminManager.cs b/sources/Interop/Windows/Windows/um/ahadmin/AppHostAdminManager.cs new file mode 100644 index 0000000000..fba0380895 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/AppHostAdminManager.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("228FB8F7-FB53-4FD5-8C7B-FF59DE606C5B")] +public unsafe partial struct AppHostAdminManager : INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_AppHostAdminManager)); +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManager.cs b/sources/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManager.cs new file mode 100644 index 0000000000..d4d360fc69 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManager.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("2B72133B-3F5B-4602-8952-803546CE3344")] +public unsafe partial struct AppHostWritableAdminManager : INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_AppHostWritableAdminManager)); +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManager.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManager.cs new file mode 100644 index 0000000000..3d83be5e54 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManager.cs @@ -0,0 +1,120 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("9BE77978-73ED-4A9A-87FD-13F09FEC1B13")] +[NativeTypeName("struct IAppHostAdminManager : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostAdminManager : IAppHostAdminManager.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostAdminManager)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetAdminSection([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrPath, IAppHostElement** ppAdminSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this), bstrSectionName, bstrPath, ppAdminSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ConfigManager(IAppHostConfigManager** ppConfigManager) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostAdminManager*)Unsafe.AsPointer(ref this), ppConfigManager); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT GetAdminSection([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrPath, IAppHostElement** ppAdminSection); + + [VtblIndex(4)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(5)] + HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value); + + [VtblIndex(6)] + HRESULT get_ConfigManager(IAppHostConfigManager** ppConfigManager); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetAdminSection; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + + [NativeTypeName("HRESULT (IAppHostConfigManager **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ConfigManager; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandler.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandler.cs new file mode 100644 index 0000000000..456fd0699a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandler.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("09829352-87C2-418D-8D79-4133969A489D")] +[NativeTypeName("struct IAppHostChangeHandler : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostChangeHandler : IAppHostChangeHandler.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostChangeHandler)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostChangeHandler*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostChangeHandler*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostChangeHandler*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT OnSectionChanges([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrConfigPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostChangeHandler*)Unsafe.AsPointer(ref this), bstrSectionName, bstrConfigPath); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT OnSectionChanges([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrConfigPath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] OnSectionChanges; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollection.cs new file mode 100644 index 0000000000..70149cb005 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("08A90F5F-0702-48D6-B45F-02A9885A9768")] +[NativeTypeName("struct IAppHostChildElementCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostChildElementCollection : IAppHostChildElementCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostChildElementCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostChildElementCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostChildElementCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostChildElementCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostChildElementCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostChildElementCollection*)Unsafe.AsPointer(ref this), cIndex, ppElement); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppElement); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchema.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchema.cs new file mode 100644 index 0000000000..066a4ac11c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchema.cs @@ -0,0 +1,162 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("DE095DB1-5368-4D11-81F6-EFEF619B7BCF")] +[NativeTypeName("struct IAppHostCollectionSchema : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostCollectionSchema : IAppHostCollectionSchema.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostCollectionSchema)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_AddElementNames([NativeTypeName("BSTR *")] char** pbstrElementName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), pbstrElementName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetAddElementSchema([NativeTypeName("BSTR")] char* bstrElementName, IAppHostElementSchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), bstrElementName, ppSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_RemoveElementSchema(IAppHostElementSchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), ppSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ClearElementSchema(IAppHostElementSchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), ppSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_IsMergeAppend([NativeTypeName("VARIANT_BOOL *")] short* pfIsMergeAppend) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), pfIsMergeAppend); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_DoesAllowDuplicates([NativeTypeName("VARIANT_BOOL *")] short* pfAllowDuplicates) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostCollectionSchema*)Unsafe.AsPointer(ref this), pfAllowDuplicates); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_AddElementNames([NativeTypeName("BSTR *")] char** pbstrElementName); + + [VtblIndex(4)] + HRESULT GetAddElementSchema([NativeTypeName("BSTR")] char* bstrElementName, IAppHostElementSchema** ppSchema); + + [VtblIndex(5)] + HRESULT get_RemoveElementSchema(IAppHostElementSchema** ppSchema); + + [VtblIndex(6)] + HRESULT get_ClearElementSchema(IAppHostElementSchema** ppSchema); + + [VtblIndex(7)] + HRESULT get_IsMergeAppend([NativeTypeName("VARIANT_BOOL *")] short* pfIsMergeAppend); + + [VtblIndex(8)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(9)] + HRESULT get_DoesAllowDuplicates([NativeTypeName("VARIANT_BOOL *")] short* pfAllowDuplicates); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_AddElementNames; + + [NativeTypeName("HRESULT (BSTR, IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetAddElementSchema; + + [NativeTypeName("HRESULT (IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_RemoveElementSchema; + + [NativeTypeName("HRESULT (IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ClearElementSchema; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsMergeAppend; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_DoesAllowDuplicates; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigException.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigException.cs new file mode 100644 index 0000000000..122a2ce5da --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigException.cs @@ -0,0 +1,162 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("4DFA1DF3-8900-4BC7-BBB5-D1A458C52410")] +[NativeTypeName("struct IAppHostConfigException : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConfigException : IAppHostConfigException.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConfigException)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConfigException*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConfigException*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_LineNumber([NativeTypeName("ULONG *")] uint* pcLineNumber) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pcLineNumber); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_FileName([NativeTypeName("BSTR *")] char** pbstrFileName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrFileName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_ConfigPath([NativeTypeName("BSTR *")] char** pbstrConfigPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ErrorLine([NativeTypeName("BSTR *")] char** pbstrErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_PreErrorLine([NativeTypeName("BSTR *")] char** pbstrPreErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrPreErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_PostErrorLine([NativeTypeName("BSTR *")] char** pbstrPostErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrPostErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_ErrorString([NativeTypeName("BSTR *")] char** pbstrErrorString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostConfigException*)Unsafe.AsPointer(ref this), pbstrErrorString); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_LineNumber([NativeTypeName("ULONG *")] uint* pcLineNumber); + + [VtblIndex(4)] + HRESULT get_FileName([NativeTypeName("BSTR *")] char** pbstrFileName); + + [VtblIndex(5)] + HRESULT get_ConfigPath([NativeTypeName("BSTR *")] char** pbstrConfigPath); + + [VtblIndex(6)] + HRESULT get_ErrorLine([NativeTypeName("BSTR *")] char** pbstrErrorLine); + + [VtblIndex(7)] + HRESULT get_PreErrorLine([NativeTypeName("BSTR *")] char** pbstrPreErrorLine); + + [VtblIndex(8)] + HRESULT get_PostErrorLine([NativeTypeName("BSTR *")] char** pbstrPostErrorLine); + + [VtblIndex(9)] + HRESULT get_ErrorString([NativeTypeName("BSTR *")] char** pbstrErrorString); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (ULONG *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_LineNumber; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_FileName; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ConfigPath; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PreErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PostErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ErrorString; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFile.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFile.cs new file mode 100644 index 0000000000..31d634b354 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFile.cs @@ -0,0 +1,176 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("ADA4E6FB-E025-401E-A5D0-C3134A281F07")] +[NativeTypeName("struct IAppHostConfigFile : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConfigFile : IAppHostConfigFile.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConfigFile)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_ConfigPath([NativeTypeName("BSTR *")] char** pbstrConfigPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), pbstrConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_FilePath([NativeTypeName("BSTR *")] char** pbstrFilePath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), pbstrFilePath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_Locations(IAppHostConfigLocationCollection** ppLocations) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), ppLocations); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT GetAdminSection([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrPath, IAppHostElement** ppAdminSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), bstrSectionName, bstrPath, ppAdminSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT ClearInvalidSections() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT get_RootSectionGroup(IAppHostSectionGroup** ppSectionGroups) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostConfigFile*)Unsafe.AsPointer(ref this), ppSectionGroups); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_ConfigPath([NativeTypeName("BSTR *")] char** pbstrConfigPath); + + [VtblIndex(4)] + HRESULT get_FilePath([NativeTypeName("BSTR *")] char** pbstrFilePath); + + [VtblIndex(5)] + HRESULT get_Locations(IAppHostConfigLocationCollection** ppLocations); + + [VtblIndex(6)] + HRESULT GetAdminSection([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrPath, IAppHostElement** ppAdminSection); + + [VtblIndex(7)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(8)] + HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value); + + [VtblIndex(9)] + HRESULT ClearInvalidSections(); + + [VtblIndex(10)] + HRESULT get_RootSectionGroup(IAppHostSectionGroup** ppSectionGroups); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ConfigPath; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_FilePath; + + [NativeTypeName("HRESULT (IAppHostConfigLocationCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Locations; + + [NativeTypeName("HRESULT (BSTR, BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetAdminSection; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] ClearInvalidSections; + + [NativeTypeName("HRESULT (IAppHostSectionGroup **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_RootSectionGroup; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocation.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocation.cs new file mode 100644 index 0000000000..328fd3f82b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocation.cs @@ -0,0 +1,134 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("370AF178-7758-4DAD-8146-7391F6E18585")] +[NativeTypeName("struct IAppHostConfigLocation : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConfigLocation : IAppHostConfigLocation.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConfigLocation)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Path([NativeTypeName("BSTR *")] char** pbstrLocationPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), pbstrLocationPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), cIndex, ppSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT AddConfigSection([NativeTypeName("BSTR")] char* bstrSectionName, IAppHostElement** ppAdminElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), bstrSectionName, ppAdminElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteConfigSection(VARIANT cIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostConfigLocation*)Unsafe.AsPointer(ref this), cIndex); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Path([NativeTypeName("BSTR *")] char** pbstrLocationPath); + + [VtblIndex(4)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(5)] + HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppSection); + + [VtblIndex(6)] + HRESULT AddConfigSection([NativeTypeName("BSTR")] char* bstrSectionName, IAppHostElement** ppAdminElement); + + [VtblIndex(7)] + HRESULT DeleteConfigSection(VARIANT cIndex); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Path; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + + [NativeTypeName("HRESULT (BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddConfigSection; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] DeleteConfigSection; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollection.cs new file mode 100644 index 0000000000..e11cd19782 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollection.cs @@ -0,0 +1,134 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("832A32F7-B3EA-4B8C-B260-9A2923001184")] +[NativeTypeName("struct IAppHostConfigLocationCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConfigLocationCollection : IAppHostConfigLocationCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConfigLocationCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT varIndex, IAppHostConfigLocation** ppLocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), varIndex, ppLocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT AddLocation([NativeTypeName("BSTR")] char* bstrLocationPath, IAppHostConfigLocation** ppNewLocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), bstrLocationPath, ppNewLocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteLocation(VARIANT cIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), cIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT RenameLocation(VARIANT varIndex, [NativeTypeName("BSTR")] char* bstrLocationPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostConfigLocationCollection*)Unsafe.AsPointer(ref this), varIndex, bstrLocationPath); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT varIndex, IAppHostConfigLocation** ppLocation); + + [VtblIndex(5)] + HRESULT AddLocation([NativeTypeName("BSTR")] char* bstrLocationPath, IAppHostConfigLocation** ppNewLocation); + + [VtblIndex(6)] + HRESULT DeleteLocation(VARIANT cIndex); + + [VtblIndex(7)] + HRESULT RenameLocation(VARIANT varIndex, [NativeTypeName("BSTR")] char* bstrLocationPath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostConfigLocation **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + + [NativeTypeName("HRESULT (BSTR, IAppHostConfigLocation **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddLocation; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] DeleteLocation; + + [NativeTypeName("HRESULT (VARIANT, BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] RenameLocation; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManager.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManager.cs new file mode 100644 index 0000000000..0a850ea9b5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManager.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("8F6D760F-F0CB-4D69-B5F6-848B33E9BDC6")] +[NativeTypeName("struct IAppHostConfigManager : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConfigManager : IAppHostConfigManager.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConfigManager)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConfigManager*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConfigManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConfigManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetConfigFile([NativeTypeName("BSTR")] char* bstrConfigPath, IAppHostConfigFile** ppConfigFile) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConfigManager*)Unsafe.AsPointer(ref this), bstrConfigPath, ppConfigFile); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetUniqueConfigPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR *")] char** pbstrUniquePath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConfigManager*)Unsafe.AsPointer(ref this), bstrConfigPath, pbstrUniquePath); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT GetConfigFile([NativeTypeName("BSTR")] char* bstrConfigPath, IAppHostConfigFile** ppConfigFile); + + [VtblIndex(4)] + HRESULT GetUniqueConfigPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR *")] char** pbstrUniquePath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, IAppHostConfigFile **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetConfigFile; + + [NativeTypeName("HRESULT (BSTR, BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetUniqueConfigPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValue.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValue.cs new file mode 100644 index 0000000000..d34c370031 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValue.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0716CAF8-7D05-4A46-8099-77594BE91394")] +[NativeTypeName("struct IAppHostConstantValue : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConstantValue : IAppHostConstantValue.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConstantValue)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConstantValue*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConstantValue*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConstantValue*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConstantValue*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Value([NativeTypeName("DWORD *")] uint* pdwValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConstantValue*)Unsafe.AsPointer(ref this), pdwValue); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Value([NativeTypeName("DWORD *")] uint* pdwValue); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Value; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollection.cs new file mode 100644 index 0000000000..8f1a56f211 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("5B5A68E6-8B9F-45E1-8199-A95FFCCDFFFF")] +[NativeTypeName("struct IAppHostConstantValueCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostConstantValueCollection : IAppHostConstantValueCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostConstantValueCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostConstantValueCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostConstantValueCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostConstantValueCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostConstantValueCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostConstantValue** ppConstantValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostConstantValueCollection*)Unsafe.AsPointer(ref this), cIndex, ppConstantValue); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostConstantValue** ppConstantValue); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostConstantValue **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElement.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElement.cs new file mode 100644 index 0000000000..d929c1643d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElement.cs @@ -0,0 +1,218 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("64FF8CCC-B287-4DAE-B08A-A72CBF45F453")] +[NativeTypeName("struct IAppHostElement : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostElement : IAppHostElement.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostElement)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostElement*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostElement*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostElement*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostElement*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Collection(IAppHostElementCollection** ppCollection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostElement*)Unsafe.AsPointer(ref this), ppCollection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_Properties(IAppHostPropertyCollection** ppProperties) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostElement*)Unsafe.AsPointer(ref this), ppProperties); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ChildElements(IAppHostChildElementCollection** ppElements) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostElement*)Unsafe.AsPointer(ref this), ppElements); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostElement*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostElement*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_Schema(IAppHostElementSchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostElement*)Unsafe.AsPointer(ref this), ppSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT GetElementByName([NativeTypeName("BSTR")] char* bstrSubName, IAppHostElement** ppElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostElement*)Unsafe.AsPointer(ref this), bstrSubName, ppElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT GetPropertyByName([NativeTypeName("BSTR")] char* bstrSubName, IAppHostProperty** ppProperty) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IAppHostElement*)Unsafe.AsPointer(ref this), bstrSubName, ppProperty); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public HRESULT Clear() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IAppHostElement*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT get_Methods(IAppHostMethodCollection** ppMethods) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IAppHostElement*)Unsafe.AsPointer(ref this), ppMethods); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Collection(IAppHostElementCollection** ppCollection); + + [VtblIndex(5)] + HRESULT get_Properties(IAppHostPropertyCollection** ppProperties); + + [VtblIndex(6)] + HRESULT get_ChildElements(IAppHostChildElementCollection** ppElements); + + [VtblIndex(7)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(8)] + HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value); + + [VtblIndex(9)] + HRESULT get_Schema(IAppHostElementSchema** ppSchema); + + [VtblIndex(10)] + HRESULT GetElementByName([NativeTypeName("BSTR")] char* bstrSubName, IAppHostElement** ppElement); + + [VtblIndex(11)] + HRESULT GetPropertyByName([NativeTypeName("BSTR")] char* bstrSubName, IAppHostProperty** ppProperty); + + [VtblIndex(12)] + HRESULT Clear(); + + [VtblIndex(13)] + HRESULT get_Methods(IAppHostMethodCollection** ppMethods); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (IAppHostElementCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Collection; + + [NativeTypeName("HRESULT (IAppHostPropertyCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Properties; + + [NativeTypeName("HRESULT (IAppHostChildElementCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ChildElements; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + + [NativeTypeName("HRESULT (IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Schema; + + [NativeTypeName("HRESULT (BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetElementByName; + + [NativeTypeName("HRESULT (BSTR, IAppHostProperty **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetPropertyByName; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("HRESULT (IAppHostMethodCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Methods; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollection.cs new file mode 100644 index 0000000000..29f49631c9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollection.cs @@ -0,0 +1,162 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("C8550BFF-5281-4B1E-AC34-99B6FA38464D")] +[NativeTypeName("struct IAppHostElementCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostElementCollection : IAppHostElementCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostElementCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcElementCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), pcElementCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), cIndex, ppElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT AddElement(IAppHostElement* pElement, int cPosition = -1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), pElement, cPosition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteElement(VARIANT cIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), cIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT Clear() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT CreateNewElement([NativeTypeName("BSTR")] char* bstrElementName, IAppHostElement** ppElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), bstrElementName, ppElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_Schema(IAppHostCollectionSchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostElementCollection*)Unsafe.AsPointer(ref this), ppSchema); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcElementCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostElement** ppElement); + + [VtblIndex(5)] + HRESULT AddElement(IAppHostElement* pElement, int cPosition = -1); + + [VtblIndex(6)] + HRESULT DeleteElement(VARIANT cIndex); + + [VtblIndex(7)] + HRESULT Clear(); + + [VtblIndex(8)] + HRESULT CreateNewElement([NativeTypeName("BSTR")] char* bstrElementName, IAppHostElement** ppElement); + + [VtblIndex(9)] + HRESULT get_Schema(IAppHostCollectionSchema** ppSchema); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + + [NativeTypeName("HRESULT (IAppHostElement *, INT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddElement; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] DeleteElement; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("HRESULT (BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] CreateNewElement; + + [NativeTypeName("HRESULT (IAppHostCollectionSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Schema; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtension.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtension.cs new file mode 100644 index 0000000000..4530fdbc75 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtension.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("518EB37D-1FF4-42DD-86C3-3140BC35B823")] +[NativeTypeName("struct IAppHostElementExtension : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostElementExtension : IAppHostElementExtension.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostElementExtension)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostElementExtension*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostElementExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostElementExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT ProvideElement(IAppHostElement* pNewElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostElementExtension*)Unsafe.AsPointer(ref this), pNewElement); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT ProvideElement(IAppHostElement* pNewElement); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (IAppHostElement *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] ProvideElement; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchema.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchema.cs new file mode 100644 index 0000000000..ea4c5e121f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchema.cs @@ -0,0 +1,162 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("EF13D885-642C-4709-99EC-B89561C6BC69")] +[NativeTypeName("struct IAppHostElementSchema : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostElementSchema : IAppHostElementSchema.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostElementSchema)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_DoesAllowUnschematizedProperties([NativeTypeName("VARIANT_BOOL *")] short* pfAllowUnschematized) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), pfAllowUnschematized); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_CollectionSchema(IAppHostCollectionSchema** ppCollectionSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), ppCollectionSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_ChildElementSchemas(IAppHostElementSchemaCollection** ppChildSchemas) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), ppChildSchemas); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_PropertySchemas(IAppHostPropertySchemaCollection** ppPropertySchemas) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), ppPropertySchemas); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_IsCollectionDefault([NativeTypeName("VARIANT_BOOL *")] short* pfIsCollectionDefault) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostElementSchema*)Unsafe.AsPointer(ref this), pfIsCollectionDefault); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_DoesAllowUnschematizedProperties([NativeTypeName("VARIANT_BOOL *")] short* pfAllowUnschematized); + + [VtblIndex(5)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(6)] + HRESULT get_CollectionSchema(IAppHostCollectionSchema** ppCollectionSchema); + + [VtblIndex(7)] + HRESULT get_ChildElementSchemas(IAppHostElementSchemaCollection** ppChildSchemas); + + [VtblIndex(8)] + HRESULT get_PropertySchemas(IAppHostPropertySchemaCollection** ppPropertySchemas); + + [VtblIndex(9)] + HRESULT get_IsCollectionDefault([NativeTypeName("VARIANT_BOOL *")] short* pfIsCollectionDefault); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_DoesAllowUnschematizedProperties; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (IAppHostCollectionSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_CollectionSchema; + + [NativeTypeName("HRESULT (IAppHostElementSchemaCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ChildElementSchemas; + + [NativeTypeName("HRESULT (IAppHostPropertySchemaCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PropertySchemas; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsCollectionDefault; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollection.cs new file mode 100644 index 0000000000..989f729718 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0344CDDA-151E-4CBF-82DA-66AE61E97754")] +[NativeTypeName("struct IAppHostElementSchemaCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostElementSchemaCollection : IAppHostElementSchemaCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostElementSchemaCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostElementSchemaCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostElementSchemaCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostElementSchemaCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostElementSchemaCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostElementSchema** ppElementSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostElementSchemaCollection*)Unsafe.AsPointer(ref this), cIndex, ppElementSchema); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostElementSchema** ppElementSchema); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtension.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtension.cs new file mode 100644 index 0000000000..f4d94f1d6c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtension.cs @@ -0,0 +1,120 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("31A83EA0-C0E4-4A2C-8A01-353CC2A4C60A")] +[NativeTypeName("struct IAppHostMappingExtension : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMappingExtension : IAppHostMappingExtension.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMappingExtension)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetSiteNameFromSiteId([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("BSTR *")] char** pbstrSiteName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this), dwSiteId, pbstrSiteName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetSiteIdFromSiteName([NativeTypeName("BSTR")] char* bstrSiteName, [NativeTypeName("DWORD *")] uint* pdwSiteId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this), bstrSiteName, pdwSiteId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT GetSiteElementFromSiteId([NativeTypeName("DWORD")] uint dwSiteId, IAppHostElement** ppSiteElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this), dwSiteId, ppSiteElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT MapPath([NativeTypeName("BSTR")] char* bstrSiteName, [NativeTypeName("BSTR")] char* bstrVirtualPath, [NativeTypeName("BSTR *")] char** pbstrPhysicalPath, IAppHostElement** ppVirtualDirectoryElement, IAppHostElement** ppApplicationElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostMappingExtension*)Unsafe.AsPointer(ref this), bstrSiteName, bstrVirtualPath, pbstrPhysicalPath, ppVirtualDirectoryElement, ppApplicationElement); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT GetSiteNameFromSiteId([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("BSTR *")] char** pbstrSiteName); + + [VtblIndex(4)] + HRESULT GetSiteIdFromSiteName([NativeTypeName("BSTR")] char* bstrSiteName, [NativeTypeName("DWORD *")] uint* pdwSiteId); + + [VtblIndex(5)] + HRESULT GetSiteElementFromSiteId([NativeTypeName("DWORD")] uint dwSiteId, IAppHostElement** ppSiteElement); + + [VtblIndex(6)] + HRESULT MapPath([NativeTypeName("BSTR")] char* bstrSiteName, [NativeTypeName("BSTR")] char* bstrVirtualPath, [NativeTypeName("BSTR *")] char** pbstrPhysicalPath, IAppHostElement** ppVirtualDirectoryElement, IAppHostElement** ppApplicationElement); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD, BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetSiteNameFromSiteId; + + [NativeTypeName("HRESULT (BSTR, DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetSiteIdFromSiteName; + + [NativeTypeName("HRESULT (DWORD, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetSiteElementFromSiteId; + + [NativeTypeName("HRESULT (BSTR, BSTR, BSTR *, IAppHostElement **, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] MapPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethod.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethod.cs new file mode 100644 index 0000000000..2f740ba121 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethod.cs @@ -0,0 +1,106 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("7883CA1C-1112-4447-84C3-52FBEB38069D")] +[NativeTypeName("struct IAppHostMethod : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMethod : IAppHostMethod.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMethod)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMethod*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMethod*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMethod*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMethod*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Schema(IAppHostMethodSchema** ppMethodSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostMethod*)Unsafe.AsPointer(ref this), ppMethodSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT CreateInstance(IAppHostMethodInstance** ppMethodInstance) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostMethod*)Unsafe.AsPointer(ref this), ppMethodInstance); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Schema(IAppHostMethodSchema** ppMethodSchema); + + [VtblIndex(5)] + HRESULT CreateInstance(IAppHostMethodInstance** ppMethodInstance); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (IAppHostMethodSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Schema; + + [NativeTypeName("HRESULT (IAppHostMethodInstance **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] CreateInstance; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollection.cs new file mode 100644 index 0000000000..a729f25ad8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("D6C7CD8F-BB8D-4F96-B591-D3A5F1320269")] +[NativeTypeName("struct IAppHostMethodCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMethodCollection : IAppHostMethodCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMethodCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMethodCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMethodCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMethodCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMethodCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostMethod** ppMethod) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostMethodCollection*)Unsafe.AsPointer(ref this), cIndex, ppMethod); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostMethod** ppMethod); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostMethod **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtension.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtension.cs new file mode 100644 index 0000000000..2ab74d5ded --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtension.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("70184AC9-7673-4770-96B1-445CE035CF70")] +[NativeTypeName("struct IAppHostMethodExtension : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMethodExtension : IAppHostMethodExtension.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMethodExtension)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMethodExtension*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMethodExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMethodExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT ProvideMethod(IAppHostMethod* pMethod, IAppHostMethodInstance* pMethodInstance, IAppHostElement* pElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMethodExtension*)Unsafe.AsPointer(ref this), pMethod, pMethodInstance, pElement); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT ProvideMethod(IAppHostMethod* pMethod, IAppHostMethodInstance* pMethodInstance, IAppHostElement* pElement); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (IAppHostMethod *, IAppHostMethodInstance *, IAppHostElement *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] ProvideMethod; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstance.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstance.cs new file mode 100644 index 0000000000..a484de2192 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstance.cs @@ -0,0 +1,134 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("B80F3C42-60E0-4AE0-9007-F52852D3DBED")] +[NativeTypeName("struct IAppHostMethodInstance : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMethodInstance : IAppHostMethodInstance.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMethodInstance)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Input(IAppHostElement** ppInputElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this), ppInputElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Output(IAppHostElement** ppOutputElement) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this), ppOutputElement); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT Execute() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostMethodInstance*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Input(IAppHostElement** ppInputElement); + + [VtblIndex(4)] + HRESULT get_Output(IAppHostElement** ppOutputElement); + + [VtblIndex(5)] + HRESULT Execute(); + + [VtblIndex(6)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(7)] + HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Input; + + [NativeTypeName("HRESULT (IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Output; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Execute; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchema.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchema.cs new file mode 100644 index 0000000000..0c0279df7c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchema.cs @@ -0,0 +1,120 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("2D9915FB-9D42-4328-B782-1B46819FAB9E")] +[NativeTypeName("struct IAppHostMethodSchema : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostMethodSchema : IAppHostMethodSchema.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostMethodSchema)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_InputSchema(IAppHostElementSchema** ppInputSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this), ppInputSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_OutputSchema(IAppHostElementSchema** ppOutputSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this), ppOutputSchema); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostMethodSchema*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_InputSchema(IAppHostElementSchema** ppInputSchema); + + [VtblIndex(5)] + HRESULT get_OutputSchema(IAppHostElementSchema** ppOutputSchema); + + [VtblIndex(6)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_InputSchema; + + [NativeTypeName("HRESULT (IAppHostElementSchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_OutputSchema; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper.cs new file mode 100644 index 0000000000..88fce6a3fc --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("E7927575-5CC3-403B-822E-328A6B904BEE")] +[NativeTypeName("struct IAppHostPathMapper : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPathMapper : IAppHostPathMapper.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPathMapper)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPathMapper*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPathMapper*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPathMapper*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT MapPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR")] char* bstrMappedPhysicalPath, [NativeTypeName("BSTR *")] char** pbstrNewPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPathMapper*)Unsafe.AsPointer(ref this), bstrConfigPath, bstrMappedPhysicalPath, pbstrNewPhysicalPath); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT MapPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR")] char* bstrMappedPhysicalPath, [NativeTypeName("BSTR *")] char** pbstrNewPhysicalPath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, BSTR, BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] MapPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2.cs new file mode 100644 index 0000000000..552fc82bd3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0F80E901-8F4C-449A-BF90-13D5D082F187")] +[NativeTypeName("struct IAppHostPathMapper2 : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPathMapper2 : IAppHostPathMapper2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPathMapper2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPathMapper2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPathMapper2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPathMapper2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT MapPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR")] char* bstrMappedPhysicalPath, [NativeTypeName("BSTR *")] char** pbstrNewPhysicalPath, HANDLE* phImpersonationToken) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPathMapper2*)Unsafe.AsPointer(ref this), bstrConfigPath, bstrMappedPhysicalPath, pbstrNewPhysicalPath, phImpersonationToken); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT MapPath([NativeTypeName("BSTR")] char* bstrConfigPath, [NativeTypeName("BSTR")] char* bstrMappedPhysicalPath, [NativeTypeName("BSTR *")] char** pbstrNewPhysicalPath, HANDLE* phImpersonationToken); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, BSTR, BSTR *, HANDLE *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] MapPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostProperty.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostProperty.cs new file mode 100644 index 0000000000..09899ab217 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostProperty.cs @@ -0,0 +1,190 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("ED35F7A1-5024-4E7B-A44D-07DDAF4B524D")] +[NativeTypeName("struct IAppHostProperty : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostProperty : IAppHostProperty.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostProperty)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostProperty*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostProperty*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostProperty*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostProperty*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Value(VARIANT* pVariant) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostProperty*)Unsafe.AsPointer(ref this), pVariant); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT put_Value(VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostProperty*)Unsafe.AsPointer(ref this), value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT Clear() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostProperty*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_StringValue([NativeTypeName("BSTR *")] char** pbstrValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostProperty*)Unsafe.AsPointer(ref this), pbstrValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_Exception(IAppHostPropertyException** ppException) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostProperty*)Unsafe.AsPointer(ref this), ppException); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostProperty*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostProperty*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT get_Schema(IAppHostPropertySchema** ppSchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IAppHostProperty*)Unsafe.AsPointer(ref this), ppSchema); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Value(VARIANT* pVariant); + + [VtblIndex(5)] + HRESULT put_Value(VARIANT value); + + [VtblIndex(6)] + HRESULT Clear(); + + [VtblIndex(7)] + HRESULT get_StringValue([NativeTypeName("BSTR *")] char** pbstrValue); + + [VtblIndex(8)] + HRESULT get_Exception(IAppHostPropertyException** ppException); + + [VtblIndex(9)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(10)] + HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value); + + [VtblIndex(11)] + HRESULT get_Schema(IAppHostPropertySchema** ppSchema); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Value; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_Value; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_StringValue; + + [NativeTypeName("HRESULT (IAppHostPropertyException **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Exception; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + + [NativeTypeName("HRESULT (IAppHostPropertySchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Schema; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollection.cs new file mode 100644 index 0000000000..f6e174ab86 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0191775E-BCFF-445A-B4F4-3BDDA54E2816")] +[NativeTypeName("struct IAppHostPropertyCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPropertyCollection : IAppHostPropertyCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPropertyCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPropertyCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPropertyCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPropertyCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPropertyCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostProperty** ppProperty) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostPropertyCollection*)Unsafe.AsPointer(ref this), cIndex, ppProperty); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostProperty** ppProperty); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostProperty **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyException.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyException.cs new file mode 100644 index 0000000000..a7c01f7522 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyException.cs @@ -0,0 +1,183 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("EAFE4895-A929-41EA-B14D-613E23F62B71")] +[NativeTypeName("struct IAppHostPropertyException : IAppHostConfigException")] +[NativeInheritance("IAppHostConfigException")] +public unsafe partial struct IAppHostPropertyException : IAppHostPropertyException.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPropertyException)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_LineNumber([NativeTypeName("ULONG *")] uint* pcLineNumber) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pcLineNumber); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_FileName([NativeTypeName("BSTR *")] char** pbstrFileName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrFileName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_ConfigPath([NativeTypeName("BSTR *")] char** pbstrConfigPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ErrorLine([NativeTypeName("BSTR *")] char** pbstrErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_PreErrorLine([NativeTypeName("BSTR *")] char** pbstrPreErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrPreErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_PostErrorLine([NativeTypeName("BSTR *")] char** pbstrPostErrorLine) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrPostErrorLine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_ErrorString([NativeTypeName("BSTR *")] char** pbstrErrorString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrErrorString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT get_InvalidValue([NativeTypeName("BSTR *")] char** pbstrValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT get_ValidationFailureReason([NativeTypeName("BSTR *")] char** pbstrValidationReason) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pbstrValidationReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public HRESULT get_ValidationFailureParameters(SAFEARRAY** pParameterArray) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IAppHostPropertyException*)Unsafe.AsPointer(ref this), pParameterArray); + } + + public interface Interface : IAppHostConfigException.Interface + { + [VtblIndex(10)] + HRESULT get_InvalidValue([NativeTypeName("BSTR *")] char** pbstrValue); + + [VtblIndex(11)] + HRESULT get_ValidationFailureReason([NativeTypeName("BSTR *")] char** pbstrValidationReason); + + [VtblIndex(12)] + HRESULT get_ValidationFailureParameters(SAFEARRAY** pParameterArray); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (ULONG *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_LineNumber; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_FileName; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ConfigPath; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PreErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PostErrorLine; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ErrorString; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_InvalidValue; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ValidationFailureReason; + + [NativeTypeName("HRESULT (SAFEARRAY **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ValidationFailureParameters; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtension.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtension.cs new file mode 100644 index 0000000000..db02fc3618 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtension.cs @@ -0,0 +1,78 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("88E220F3-33E8-4534-AFAC-B4A98ECCF9AE")] +[NativeTypeName("struct IAppHostPropertyExtension : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPropertyExtension : IAppHostPropertyExtension.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPropertyExtension)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPropertyExtension*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPropertyExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPropertyExtension*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT ProvideGetProperty(IAppHostElement* pElement, IAppHostProperty* pProperty) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPropertyExtension*)Unsafe.AsPointer(ref this), pElement, pProperty); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT ProvideGetProperty(IAppHostElement* pElement, IAppHostProperty* pProperty); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (IAppHostElement *, IAppHostProperty *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] ProvideGetProperty; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchema.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchema.cs new file mode 100644 index 0000000000..df680609a9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchema.cs @@ -0,0 +1,274 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("450386DB-7409-4667-935E-384DBBEE2A9E")] +[NativeTypeName("struct IAppHostPropertySchema : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPropertySchema : IAppHostPropertySchema.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPropertySchema)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pbstrType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_DefaultValue(VARIANT* pDefaultValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pDefaultValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_IsRequired([NativeTypeName("VARIANT_BOOL *")] short* pfIsRequired) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsRequired); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT get_IsUniqueKey([NativeTypeName("VARIANT_BOOL *")] short* pfIsUniqueKey) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsUniqueKey); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_IsCombinedKey([NativeTypeName("VARIANT_BOOL *")] short* pfIsCombinedKey) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsCombinedKey); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_IsExpanded([NativeTypeName("VARIANT_BOOL *")] short* pfIsExpanded) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsExpanded); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT get_ValidationType([NativeTypeName("BSTR *")] char** pbstrValidationType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pbstrValidationType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT get_ValidationParameter([NativeTypeName("BSTR *")] char** pbstrValidationParameter) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pbstrValidationParameter); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT get_IsCaseSensitive([NativeTypeName("VARIANT_BOOL *")] short* pfIsCaseSensitive) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsCaseSensitive); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public HRESULT get_PossibleValues(IAppHostConstantValueCollection** ppValues) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), ppValues); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public HRESULT get_DoesAllowInfinite([NativeTypeName("VARIANT_BOOL *")] short* pfAllowInfinite) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfAllowInfinite); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT get_IsEncrypted([NativeTypeName("VARIANT_BOOL *")] short* pfIsEncrypted) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pfIsEncrypted); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT get_TimeSpanFormat([NativeTypeName("BSTR *")] char** pbstrTimeSpanFormat) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IAppHostPropertySchema*)Unsafe.AsPointer(ref this), pbstrTimeSpanFormat); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType); + + [VtblIndex(5)] + HRESULT get_DefaultValue(VARIANT* pDefaultValue); + + [VtblIndex(6)] + HRESULT get_IsRequired([NativeTypeName("VARIANT_BOOL *")] short* pfIsRequired); + + [VtblIndex(7)] + HRESULT get_IsUniqueKey([NativeTypeName("VARIANT_BOOL *")] short* pfIsUniqueKey); + + [VtblIndex(8)] + HRESULT get_IsCombinedKey([NativeTypeName("VARIANT_BOOL *")] short* pfIsCombinedKey); + + [VtblIndex(9)] + HRESULT get_IsExpanded([NativeTypeName("VARIANT_BOOL *")] short* pfIsExpanded); + + [VtblIndex(10)] + HRESULT get_ValidationType([NativeTypeName("BSTR *")] char** pbstrValidationType); + + [VtblIndex(11)] + HRESULT get_ValidationParameter([NativeTypeName("BSTR *")] char** pbstrValidationParameter); + + [VtblIndex(12)] + HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue); + + [VtblIndex(13)] + HRESULT get_IsCaseSensitive([NativeTypeName("VARIANT_BOOL *")] short* pfIsCaseSensitive); + + [VtblIndex(14)] + HRESULT get_PossibleValues(IAppHostConstantValueCollection** ppValues); + + [VtblIndex(15)] + HRESULT get_DoesAllowInfinite([NativeTypeName("VARIANT_BOOL *")] short* pfAllowInfinite); + + [VtblIndex(16)] + HRESULT get_IsEncrypted([NativeTypeName("VARIANT_BOOL *")] short* pfIsEncrypted); + + [VtblIndex(17)] + HRESULT get_TimeSpanFormat([NativeTypeName("BSTR *")] char** pbstrTimeSpanFormat); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Type; + + [NativeTypeName("HRESULT (VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_DefaultValue; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsRequired; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsUniqueKey; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsCombinedKey; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsExpanded; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ValidationType; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ValidationParameter; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsCaseSensitive; + + [NativeTypeName("HRESULT (IAppHostConstantValueCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_PossibleValues; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_DoesAllowInfinite; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_IsEncrypted; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_TimeSpanFormat; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollection.cs new file mode 100644 index 0000000000..1ccb4105f5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollection.cs @@ -0,0 +1,92 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("8BED2C68-A5FB-4B28-8581-A0DC5267419F")] +[NativeTypeName("struct IAppHostPropertySchemaCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostPropertySchemaCollection : IAppHostPropertySchemaCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostPropertySchemaCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostPropertySchemaCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostPropertySchemaCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostPropertySchemaCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostPropertySchemaCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT cIndex, IAppHostPropertySchema** ppPropertySchema) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostPropertySchemaCollection*)Unsafe.AsPointer(ref this), cIndex, ppPropertySchema); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("DWORD *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT cIndex, IAppHostPropertySchema** ppPropertySchema); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostPropertySchema **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinition.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinition.cs new file mode 100644 index 0000000000..02970809f1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinition.cs @@ -0,0 +1,218 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("C5C04795-321C-4014-8FD6-D44658799393")] +[NativeTypeName("struct IAppHostSectionDefinition : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostSectionDefinition : IAppHostSectionDefinition.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostSectionDefinition)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pbstrType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT put_Type([NativeTypeName("BSTR")] char* bstrType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), bstrType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_OverrideModeDefault([NativeTypeName("BSTR *")] char** pbstrOverrideModeDefault) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pbstrOverrideModeDefault); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT put_OverrideModeDefault([NativeTypeName("BSTR")] char* bstrOverrideModeDefault) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), bstrOverrideModeDefault); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_AllowDefinition([NativeTypeName("BSTR *")] char** pbstrAllowDefinition) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pbstrAllowDefinition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT put_AllowDefinition([NativeTypeName("BSTR")] char* bstrAllowDefinition) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), bstrAllowDefinition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT get_AllowLocation([NativeTypeName("BSTR *")] char** pbstrAllowLocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pbstrAllowLocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT put_AllowLocation([NativeTypeName("BSTR")] char* bstrAllowLocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), bstrAllowLocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public HRESULT get_RequirePermission([NativeTypeName("VARIANT_BOOL *")] short* pfRequirePermission) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pfRequirePermission); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT put_RequirePermission([NativeTypeName("VARIANT_BOOL")] short pfRequirePermission) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IAppHostSectionDefinition*)Unsafe.AsPointer(ref this), pfRequirePermission); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(4)] + HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType); + + [VtblIndex(5)] + HRESULT put_Type([NativeTypeName("BSTR")] char* bstrType); + + [VtblIndex(6)] + HRESULT get_OverrideModeDefault([NativeTypeName("BSTR *")] char** pbstrOverrideModeDefault); + + [VtblIndex(7)] + HRESULT put_OverrideModeDefault([NativeTypeName("BSTR")] char* bstrOverrideModeDefault); + + [VtblIndex(8)] + HRESULT get_AllowDefinition([NativeTypeName("BSTR *")] char** pbstrAllowDefinition); + + [VtblIndex(9)] + HRESULT put_AllowDefinition([NativeTypeName("BSTR")] char* bstrAllowDefinition); + + [VtblIndex(10)] + HRESULT get_AllowLocation([NativeTypeName("BSTR *")] char** pbstrAllowLocation); + + [VtblIndex(11)] + HRESULT put_AllowLocation([NativeTypeName("BSTR")] char* bstrAllowLocation); + + [VtblIndex(12)] + HRESULT get_RequirePermission([NativeTypeName("VARIANT_BOOL *")] short* pfRequirePermission); + + [VtblIndex(13)] + HRESULT put_RequirePermission([NativeTypeName("VARIANT_BOOL")] short pfRequirePermission); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Type; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_Type; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_OverrideModeDefault; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_OverrideModeDefault; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_AllowDefinition; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_AllowDefinition; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_AllowLocation; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_AllowLocation; + + [NativeTypeName("HRESULT (VARIANT_BOOL *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_RequirePermission; + + [NativeTypeName("HRESULT (VARIANT_BOOL) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_RequirePermission; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollection.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollection.cs new file mode 100644 index 0000000000..820a8caac1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollection.cs @@ -0,0 +1,120 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("B7D381EE-8860-47A1-8AF4-1F33B2B1F325")] +[NativeTypeName("struct IAppHostSectionDefinitionCollection : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostSectionDefinitionCollection : IAppHostSectionDefinitionCollection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostSectionDefinitionCollection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("ULONG *")] uint* pcCount) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this), pcCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT varIndex, IAppHostSectionDefinition** ppConfigSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this), varIndex, ppConfigSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT AddSection([NativeTypeName("BSTR")] char* bstrSectionName, IAppHostSectionDefinition** ppConfigSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this), bstrSectionName, ppConfigSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteSection(VARIANT varIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostSectionDefinitionCollection*)Unsafe.AsPointer(ref this), varIndex); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("ULONG *")] uint* pcCount); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT varIndex, IAppHostSectionDefinition** ppConfigSection); + + [VtblIndex(5)] + HRESULT AddSection([NativeTypeName("BSTR")] char* bstrSectionName, IAppHostSectionDefinition** ppConfigSection); + + [VtblIndex(6)] + HRESULT DeleteSection(VARIANT varIndex); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (ULONG *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostSectionDefinition **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + + [NativeTypeName("HRESULT (BSTR, IAppHostSectionDefinition **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddSection; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] DeleteSection; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroup.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroup.cs new file mode 100644 index 0000000000..99e8003583 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroup.cs @@ -0,0 +1,176 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0DD8A158-EBE6-4008-A1D9-B7ECC8F1104B")] +[NativeTypeName("struct IAppHostSectionGroup : IUnknown")] +[NativeInheritance("IUnknown")] +public unsafe partial struct IAppHostSectionGroup : IAppHostSectionGroup.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostSectionGroup)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT get_Count([NativeTypeName("ULONG *")] uint* pcSectionGroup) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), pcSectionGroup); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT get_Item(VARIANT varIndex, IAppHostSectionGroup** ppSectionGroup) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), varIndex, ppSectionGroup); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT get_Sections(IAppHostSectionDefinitionCollection** ppSections) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), ppSections); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT AddSectionGroup([NativeTypeName("BSTR")] char* bstrSectionGroupName, IAppHostSectionGroup** ppSectionGroup) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), bstrSectionGroupName, ppSectionGroup); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteSectionGroup(VARIANT varIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), varIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), pbstrName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), pbstrType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT put_Type([NativeTypeName("BSTR")] char* bstrType) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IAppHostSectionGroup*)Unsafe.AsPointer(ref this), bstrType); + } + + public interface Interface : IUnknown.Interface + { + [VtblIndex(3)] + HRESULT get_Count([NativeTypeName("ULONG *")] uint* pcSectionGroup); + + [VtblIndex(4)] + HRESULT get_Item(VARIANT varIndex, IAppHostSectionGroup** ppSectionGroup); + + [VtblIndex(5)] + HRESULT get_Sections(IAppHostSectionDefinitionCollection** ppSections); + + [VtblIndex(6)] + HRESULT AddSectionGroup([NativeTypeName("BSTR")] char* bstrSectionGroupName, IAppHostSectionGroup** ppSectionGroup); + + [VtblIndex(7)] + HRESULT DeleteSectionGroup(VARIANT varIndex); + + [VtblIndex(8)] + HRESULT get_Name([NativeTypeName("BSTR *")] char** pbstrName); + + [VtblIndex(9)] + HRESULT get_Type([NativeTypeName("BSTR *")] char** pbstrType); + + [VtblIndex(10)] + HRESULT put_Type([NativeTypeName("BSTR")] char* bstrType); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (ULONG *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Count; + + [NativeTypeName("HRESULT (VARIANT, IAppHostSectionGroup **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Item; + + [NativeTypeName("HRESULT (IAppHostSectionDefinitionCollection **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Sections; + + [NativeTypeName("HRESULT (BSTR, IAppHostSectionGroup **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddSectionGroup; + + [NativeTypeName("HRESULT (VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] DeleteSectionGroup; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Name; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_Type; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_Type; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManager.cs b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManager.cs new file mode 100644 index 0000000000..3bee6ba2d1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManager.cs @@ -0,0 +1,150 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("FA7660F6-7B3F-4237-A8BF-ED0AD0DCBBD9")] +[NativeTypeName("struct IAppHostWritableAdminManager : IAppHostAdminManager")] +[NativeInheritance("IAppHostAdminManager")] +public unsafe partial struct IAppHostWritableAdminManager : IAppHostWritableAdminManager.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAppHostWritableAdminManager)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetAdminSection([NativeTypeName("BSTR")] char* bstrSectionName, [NativeTypeName("BSTR")] char* bstrPath, IAppHostElement** ppAdminSection) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), bstrSectionName, bstrPath, ppAdminSection); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT* pValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), bstrMetadataType, pValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetMetadata([NativeTypeName("BSTR")] char* bstrMetadataType, VARIANT value) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), bstrMetadataType, value); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT get_ConfigManager(IAppHostConfigManager** ppConfigManager) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), ppConfigManager); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT CommitChanges() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT get_CommitPath([NativeTypeName("BSTR *")] char** pbstrCommitPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), pbstrCommitPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT put_CommitPath([NativeTypeName("BSTR")] char* bstrCommitPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IAppHostWritableAdminManager*)Unsafe.AsPointer(ref this), bstrCommitPath); + } + + public interface Interface : IAppHostAdminManager.Interface + { + [VtblIndex(7)] + HRESULT CommitChanges(); + + [VtblIndex(8)] + HRESULT get_CommitPath([NativeTypeName("BSTR *")] char** pbstrCommitPath); + + [VtblIndex(9)] + HRESULT put_CommitPath([NativeTypeName("BSTR")] char* bstrCommitPath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (const IID &, void **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] QueryInterface; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BSTR, BSTR, IAppHostElement **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetAdminSection; + + [NativeTypeName("HRESULT (BSTR, VARIANT *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (BSTR, VARIANT) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] SetMetadata; + + [NativeTypeName("HRESULT (IAppHostConfigManager **) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_ConfigManager; + + [NativeTypeName("HRESULT () __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] CommitChanges; + + [NativeTypeName("HRESULT (BSTR *) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] get_CommitPath; + + [NativeTypeName("HRESULT (BSTR) __attribute__((stdcall))")] + public delegate* unmanaged[MemberFunction] put_CommitPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/ahadmin/IID.cs b/sources/Interop/Windows/Windows/um/ahadmin/IID.cs new file mode 100644 index 0000000000..306200f568 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/ahadmin/IID.cs @@ -0,0 +1,842 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +public static partial class IID +{ + public static ref readonly Guid IID_IAppHostMethodExtension + { + get + { + ReadOnlySpan data = [ + 0xC9, 0x4A, 0x18, 0x70, + 0x73, 0x76, + 0x70, 0x47, + 0x96, + 0xB1, + 0x44, + 0x5C, + 0xE0, + 0x35, + 0xCF, + 0x70 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPropertyExtension + { + get + { + ReadOnlySpan data = [ + 0xF3, 0x20, 0xE2, 0x88, + 0xE8, 0x33, + 0x34, 0x45, + 0xAF, + 0xAC, + 0xB4, + 0xA9, + 0x8E, + 0xCC, + 0xF9, + 0xAE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostElementExtension + { + get + { + ReadOnlySpan data = [ + 0x7D, 0xB3, 0x8E, 0x51, + 0xF4, 0x1F, + 0xDD, 0x42, + 0x86, + 0xC3, + 0x31, + 0x40, + 0xBC, + 0x35, + 0xB8, + 0x23 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostMappingExtension + { + get + { + ReadOnlySpan data = [ + 0xA0, 0x3E, 0xA8, 0x31, + 0xE4, 0xC0, + 0x2C, 0x4A, + 0x8A, + 0x01, + 0x35, + 0x3C, + 0xC2, + 0xA4, + 0xC6, + 0x0A + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostChildElementCollection + { + get + { + ReadOnlySpan data = [ + 0x5F, 0x0F, 0xA9, 0x08, + 0x02, 0x07, + 0xD6, 0x48, + 0xB4, + 0x5F, + 0x02, + 0xA9, + 0x88, + 0x5A, + 0x97, + 0x68 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPropertyCollection + { + get + { + ReadOnlySpan data = [ + 0x5E, 0x77, 0x91, 0x01, + 0xFF, 0xBC, + 0x5A, 0x44, + 0xB4, + 0xF4, + 0x3B, + 0xDD, + 0xA5, + 0x4E, + 0x28, + 0x16 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConfigLocationCollection + { + get + { + ReadOnlySpan data = [ + 0xF7, 0x32, 0x2A, 0x83, + 0xEA, 0xB3, + 0x8C, 0x4B, + 0xB2, + 0x60, + 0x9A, + 0x29, + 0x23, + 0x00, + 0x11, + 0x84 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostMethodCollection + { + get + { + ReadOnlySpan data = [ + 0x8F, 0xCD, 0xC7, 0xD6, + 0x8D, 0xBB, + 0x96, 0x4F, + 0xB5, + 0x91, + 0xD3, + 0xA5, + 0xF1, + 0x32, + 0x02, + 0x69 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostElementSchemaCollection + { + get + { + ReadOnlySpan data = [ + 0xDA, 0xCD, 0x44, 0x03, + 0x1E, 0x15, + 0xBF, 0x4C, + 0x82, + 0xDA, + 0x66, + 0xAE, + 0x61, + 0xE9, + 0x77, + 0x54 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPropertySchemaCollection + { + get + { + ReadOnlySpan data = [ + 0x68, 0x2C, 0xED, 0x8B, + 0xFB, 0xA5, + 0x28, 0x4B, + 0x85, + 0x81, + 0xA0, + 0xDC, + 0x52, + 0x67, + 0x41, + 0x9F + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConstantValueCollection + { + get + { + ReadOnlySpan data = [ + 0xE6, 0x68, 0x5A, 0x5B, + 0x9F, 0x8B, + 0xE1, 0x45, + 0x81, + 0x99, + 0xA9, + 0x5F, + 0xFC, + 0xCD, + 0xFF, + 0xFF + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConstantValue + { + get + { + ReadOnlySpan data = [ + 0xF8, 0xCA, 0x16, 0x07, + 0x05, 0x7D, + 0x46, 0x4A, + 0x80, + 0x99, + 0x77, + 0x59, + 0x4B, + 0xE9, + 0x13, + 0x94 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPropertySchema + { + get + { + ReadOnlySpan data = [ + 0xDB, 0x86, 0x03, 0x45, + 0x09, 0x74, + 0x67, 0x46, + 0x93, + 0x5E, + 0x38, + 0x4D, + 0xBB, + 0xEE, + 0x2A, + 0x9E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostCollectionSchema + { + get + { + ReadOnlySpan data = [ + 0xB1, 0x5D, 0x09, 0xDE, + 0x68, 0x53, + 0x11, 0x4D, + 0x81, + 0xF6, + 0xEF, + 0xEF, + 0x61, + 0x9B, + 0x7B, + 0xCF + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostElementSchema + { + get + { + ReadOnlySpan data = [ + 0x85, 0xD8, 0x13, 0xEF, + 0x2C, 0x64, + 0x09, 0x47, + 0x99, + 0xEC, + 0xB8, + 0x95, + 0x61, + 0xC6, + 0xBC, + 0x69 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostMethodSchema + { + get + { + ReadOnlySpan data = [ + 0xFB, 0x15, 0x99, 0x2D, + 0x42, 0x9D, + 0x28, 0x43, + 0xB7, + 0x82, + 0x1B, + 0x46, + 0x81, + 0x9F, + 0xAB, + 0x9E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostMethodInstance + { + get + { + ReadOnlySpan data = [ + 0x42, 0x3C, 0x0F, 0xB8, + 0xE0, 0x60, + 0xE0, 0x4A, + 0x90, + 0x07, + 0xF5, + 0x28, + 0x52, + 0xD3, + 0xDB, + 0xED + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostMethod + { + get + { + ReadOnlySpan data = [ + 0x1C, 0xCA, 0x83, 0x78, + 0x12, 0x11, + 0x47, 0x44, + 0x84, + 0xC3, + 0x52, + 0xFB, + 0xEB, + 0x38, + 0x06, + 0x9D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConfigException + { + get + { + ReadOnlySpan data = [ + 0xF3, 0x1D, 0xFA, 0x4D, + 0x00, 0x89, + 0xC7, 0x4B, + 0xBB, + 0xB5, + 0xD1, + 0xA4, + 0x58, + 0xC5, + 0x24, + 0x10 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPropertyException + { + get + { + ReadOnlySpan data = [ + 0x95, 0x48, 0xFE, 0xEA, + 0x29, 0xA9, + 0xEA, 0x41, + 0xB1, + 0x4D, + 0x61, + 0x3E, + 0x23, + 0xF6, + 0x2B, + 0x71 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostElementCollection + { + get + { + ReadOnlySpan data = [ + 0xFF, 0x0B, 0x55, 0xC8, + 0x81, 0x52, + 0x1E, 0x4B, + 0xAC, + 0x34, + 0x99, + 0xB6, + 0xFA, + 0x38, + 0x46, + 0x4D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostElement + { + get + { + ReadOnlySpan data = [ + 0xCC, 0x8C, 0xFF, 0x64, + 0x87, 0xB2, + 0xAE, 0x4D, + 0xB0, + 0x8A, + 0xA7, + 0x2C, + 0xBF, + 0x45, + 0xF4, + 0x53 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostProperty + { + get + { + ReadOnlySpan data = [ + 0xA1, 0xF7, 0x35, 0xED, + 0x24, 0x50, + 0x7B, 0x4E, + 0xA4, + 0x4D, + 0x07, + 0xDD, + 0xAF, + 0x4B, + 0x52, + 0x4D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConfigLocation + { + get + { + ReadOnlySpan data = [ + 0x78, 0xF1, 0x0A, 0x37, + 0x58, 0x77, + 0xAD, 0x4D, + 0x81, + 0x46, + 0x73, + 0x91, + 0xF6, + 0xE1, + 0x85, + 0x85 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostSectionDefinition + { + get + { + ReadOnlySpan data = [ + 0x95, 0x47, 0xC0, 0xC5, + 0x1C, 0x32, + 0x14, 0x40, + 0x8F, + 0xD6, + 0xD4, + 0x46, + 0x58, + 0x79, + 0x93, + 0x93 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostSectionDefinitionCollection + { + get + { + ReadOnlySpan data = [ + 0xEE, 0x81, 0xD3, 0xB7, + 0x60, 0x88, + 0xA1, 0x47, + 0x8A, + 0xF4, + 0x1F, + 0x33, + 0xB2, + 0xB1, + 0xF3, + 0x25 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostSectionGroup + { + get + { + ReadOnlySpan data = [ + 0x58, 0xA1, 0xD8, 0x0D, + 0xE6, 0xEB, + 0x08, 0x40, + 0xA1, + 0xD9, + 0xB7, + 0xEC, + 0xC8, + 0xF1, + 0x10, + 0x4B + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConfigFile + { + get + { + ReadOnlySpan data = [ + 0xFB, 0xE6, 0xA4, 0xAD, + 0x25, 0xE0, + 0x1E, 0x40, + 0xA5, + 0xD0, + 0xC3, + 0x13, + 0x4A, + 0x28, + 0x1F, + 0x07 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPathMapper + { + get + { + ReadOnlySpan data = [ + 0x75, 0x75, 0x92, 0xE7, + 0xC3, 0x5C, + 0x3B, 0x40, + 0x82, + 0x2E, + 0x32, + 0x8A, + 0x6B, + 0x90, + 0x4B, + 0xEE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostPathMapper2 + { + get + { + ReadOnlySpan data = [ + 0x01, 0xE9, 0x80, 0x0F, + 0x4C, 0x8F, + 0x9A, 0x44, + 0xBF, + 0x90, + 0x13, + 0xD5, + 0xD0, + 0x82, + 0xF1, + 0x87 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostChangeHandler + { + get + { + ReadOnlySpan data = [ + 0x52, 0x93, 0x82, 0x09, + 0xC2, 0x87, + 0x8D, 0x41, + 0x8D, + 0x79, + 0x41, + 0x33, + 0x96, + 0x9A, + 0x48, + 0x9D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostAdminManager + { + get + { + ReadOnlySpan data = [ + 0x78, 0x79, 0xE7, 0x9B, + 0xED, 0x73, + 0x9A, 0x4A, + 0x87, + 0xFD, + 0x13, + 0xF0, + 0x9F, + 0xEC, + 0x1B, + 0x13 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostWritableAdminManager + { + get + { + ReadOnlySpan data = [ + 0xF6, 0x60, 0x76, 0xFA, + 0x3F, 0x7B, + 0x37, 0x42, + 0xA8, + 0xBF, + 0xED, + 0x0A, + 0xD0, + 0xDC, + 0xBB, + 0xD9 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAppHostConfigManager + { + get + { + ReadOnlySpan data = [ + 0x0F, 0x76, 0x6D, 0x8F, + 0xCB, 0xF0, + 0x69, 0x4D, + 0xB5, + 0xF6, + 0x84, + 0x8B, + 0x33, + 0xE9, + 0xBD, + 0xC6 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_AppHostAdminManager + { + get + { + ReadOnlySpan data = [ + 0xF7, 0xB8, 0x8F, 0x22, + 0x53, 0xFB, + 0xD5, 0x4F, + 0x8C, + 0x7B, + 0xFF, + 0x59, + 0xDE, + 0x60, + 0x6C, + 0x5B + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_AppHostWritableAdminManager + { + get + { + ReadOnlySpan data = [ + 0x3B, 0x13, 0x72, 0x2B, + 0x5B, 0x3F, + 0x02, 0x46, + 0x89, + 0x52, + 0x80, + 0x35, + 0x46, + 0xCE, + 0x33, + 0x44 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP.cs b/sources/Interop/Windows/Windows/um/http/HTTP.cs new file mode 100644 index 0000000000..46f9a23113 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP.cs @@ -0,0 +1,351 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +public static partial class HTTP +{ + [NativeTypeName("#define HTTP_INITIALIZE_SERVER 0x00000001")] + public const int HTTP_INITIALIZE_SERVER = 0x00000001; + + [NativeTypeName("#define HTTP_INITIALIZE_CONFIG 0x00000002")] + public const int HTTP_INITIALIZE_CONFIG = 0x00000002; + + [NativeTypeName("#define HTTP_DEMAND_CBT 0x00000004")] + public const int HTTP_DEMAND_CBT = 0x00000004; + + [NativeTypeName("#define HTTP_MAX_SERVER_QUEUE_LENGTH 0x7FFFFFFF")] + public const int HTTP_MAX_SERVER_QUEUE_LENGTH = 0x7FFFFFFF; + + [NativeTypeName("#define HTTP_MIN_SERVER_QUEUE_LENGTH 1")] + public const int HTTP_MIN_SERVER_QUEUE_LENGTH = 1; + + [NativeTypeName("#define HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE ((ULONG)1024)")] + public const uint HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE = ((uint)(1024)); + + [NativeTypeName("#define HTTP_LIMIT_INFINITE ((ULONG)-1)")] + public const uint HTTP_LIMIT_INFINITE = unchecked((uint)(-1)); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_BASIC (0x00000001)")] + public const int HTTP_AUTH_ENABLE_BASIC = (0x00000001); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_DIGEST (0x00000002)")] + public const int HTTP_AUTH_ENABLE_DIGEST = (0x00000002); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_NTLM (0x00000004)")] + public const int HTTP_AUTH_ENABLE_NTLM = (0x00000004); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_NEGOTIATE (0x00000008)")] + public const int HTTP_AUTH_ENABLE_NEGOTIATE = (0x00000008); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_KERBEROS (0x00000010)")] + public const int HTTP_AUTH_ENABLE_KERBEROS = (0x00000010); + + [NativeTypeName("#define HTTP_AUTH_ENABLE_ALL (HTTP_AUTH_ENABLE_BASIC |\\\r\n HTTP_AUTH_ENABLE_DIGEST |\\\r\n HTTP_AUTH_ENABLE_NTLM |\\\r\n HTTP_AUTH_ENABLE_NEGOTIATE |\\\r\n HTTP_AUTH_ENABLE_KERBEROS)")] + public const int HTTP_AUTH_ENABLE_ALL = ((0x00000001) | (0x00000002) | (0x00000004) | (0x00000008) | (0x00000010)); + + [NativeTypeName("#define HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING (0x01)")] + public const int HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING = (0x01); + + [NativeTypeName("#define HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL (0x02)")] + public const int HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL = (0x02); + + [NativeTypeName("#define HTTP_CHANNEL_BIND_PROXY 0x1")] + public const int HTTP_CHANNEL_BIND_PROXY = 0x1; + + [NativeTypeName("#define HTTP_CHANNEL_BIND_PROXY_COHOSTING 0x20")] + public const int HTTP_CHANNEL_BIND_PROXY_COHOSTING = 0x20; + + [NativeTypeName("#define HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK 0x2")] + public const int HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK = 0x2; + + [NativeTypeName("#define HTTP_CHANNEL_BIND_DOTLESS_SERVICE 0x4")] + public const int HTTP_CHANNEL_BIND_DOTLESS_SERVICE = 0x4; + + [NativeTypeName("#define HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN 0x8")] + public const int HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN = 0x8; + + [NativeTypeName("#define HTTP_CHANNEL_BIND_CLIENT_SERVICE 0x10")] + public const int HTTP_CHANNEL_BIND_CLIENT_SERVICE = 0x10; + + [NativeTypeName("#define HTTP_LOG_FIELD_DATE 0x00000001")] + public const int HTTP_LOG_FIELD_DATE = 0x00000001; + + [NativeTypeName("#define HTTP_LOG_FIELD_TIME 0x00000002")] + public const int HTTP_LOG_FIELD_TIME = 0x00000002; + + [NativeTypeName("#define HTTP_LOG_FIELD_CLIENT_IP 0x00000004")] + public const int HTTP_LOG_FIELD_CLIENT_IP = 0x00000004; + + [NativeTypeName("#define HTTP_LOG_FIELD_USER_NAME 0x00000008")] + public const int HTTP_LOG_FIELD_USER_NAME = 0x00000008; + + [NativeTypeName("#define HTTP_LOG_FIELD_SITE_NAME 0x00000010")] + public const int HTTP_LOG_FIELD_SITE_NAME = 0x00000010; + + [NativeTypeName("#define HTTP_LOG_FIELD_COMPUTER_NAME 0x00000020")] + public const int HTTP_LOG_FIELD_COMPUTER_NAME = 0x00000020; + + [NativeTypeName("#define HTTP_LOG_FIELD_SERVER_IP 0x00000040")] + public const int HTTP_LOG_FIELD_SERVER_IP = 0x00000040; + + [NativeTypeName("#define HTTP_LOG_FIELD_METHOD 0x00000080")] + public const int HTTP_LOG_FIELD_METHOD = 0x00000080; + + [NativeTypeName("#define HTTP_LOG_FIELD_URI_STEM 0x00000100")] + public const int HTTP_LOG_FIELD_URI_STEM = 0x00000100; + + [NativeTypeName("#define HTTP_LOG_FIELD_URI_QUERY 0x00000200")] + public const int HTTP_LOG_FIELD_URI_QUERY = 0x00000200; + + [NativeTypeName("#define HTTP_LOG_FIELD_STATUS 0x00000400")] + public const int HTTP_LOG_FIELD_STATUS = 0x00000400; + + [NativeTypeName("#define HTTP_LOG_FIELD_WIN32_STATUS 0x00000800")] + public const int HTTP_LOG_FIELD_WIN32_STATUS = 0x00000800; + + [NativeTypeName("#define HTTP_LOG_FIELD_BYTES_SENT 0x00001000")] + public const int HTTP_LOG_FIELD_BYTES_SENT = 0x00001000; + + [NativeTypeName("#define HTTP_LOG_FIELD_BYTES_RECV 0x00002000")] + public const int HTTP_LOG_FIELD_BYTES_RECV = 0x00002000; + + [NativeTypeName("#define HTTP_LOG_FIELD_TIME_TAKEN 0x00004000")] + public const int HTTP_LOG_FIELD_TIME_TAKEN = 0x00004000; + + [NativeTypeName("#define HTTP_LOG_FIELD_SERVER_PORT 0x00008000")] + public const int HTTP_LOG_FIELD_SERVER_PORT = 0x00008000; + + [NativeTypeName("#define HTTP_LOG_FIELD_USER_AGENT 0x00010000")] + public const int HTTP_LOG_FIELD_USER_AGENT = 0x00010000; + + [NativeTypeName("#define HTTP_LOG_FIELD_COOKIE 0x00020000")] + public const int HTTP_LOG_FIELD_COOKIE = 0x00020000; + + [NativeTypeName("#define HTTP_LOG_FIELD_REFERER 0x00040000")] + public const int HTTP_LOG_FIELD_REFERER = 0x00040000; + + [NativeTypeName("#define HTTP_LOG_FIELD_VERSION 0x00080000")] + public const int HTTP_LOG_FIELD_VERSION = 0x00080000; + + [NativeTypeName("#define HTTP_LOG_FIELD_HOST 0x00100000")] + public const int HTTP_LOG_FIELD_HOST = 0x00100000; + + [NativeTypeName("#define HTTP_LOG_FIELD_SUB_STATUS 0x00200000")] + public const int HTTP_LOG_FIELD_SUB_STATUS = 0x00200000; + + [NativeTypeName("#define HTTP_LOG_FIELD_STREAM_ID 0x08000000")] + public const int HTTP_LOG_FIELD_STREAM_ID = 0x08000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_STREAM_ID_EX 0x10000000")] + public const int HTTP_LOG_FIELD_STREAM_ID_EX = 0x10000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_TRANSPORT_TYPE 0x20000000")] + public const int HTTP_LOG_FIELD_TRANSPORT_TYPE = 0x20000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_CLIENT_PORT 0x00400000")] + public const int HTTP_LOG_FIELD_CLIENT_PORT = 0x00400000; + + [NativeTypeName("#define HTTP_LOG_FIELD_URI 0x00800000")] + public const int HTTP_LOG_FIELD_URI = 0x00800000; + + [NativeTypeName("#define HTTP_LOG_FIELD_SITE_ID 0x01000000")] + public const int HTTP_LOG_FIELD_SITE_ID = 0x01000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_REASON 0x02000000")] + public const int HTTP_LOG_FIELD_REASON = 0x02000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_QUEUE_NAME 0x04000000")] + public const int HTTP_LOG_FIELD_QUEUE_NAME = 0x04000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_CORRELATION_ID 0x40000000")] + public const int HTTP_LOG_FIELD_CORRELATION_ID = 0x40000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_FAULT_CODE 0x80000000")] + public const uint HTTP_LOG_FIELD_FAULT_CODE = 0x80000000; + + [NativeTypeName("#define HTTP_LOG_FIELD_EXT_FAULT_CODE_EXT 0x0000000000000001")] + public const int HTTP_LOG_FIELD_EXT_FAULT_CODE_EXT = 0x0000000000000001; + + [NativeTypeName("#define HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE ((ULONG)(1 * 1024 * 1024))")] + public const uint HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE = ((uint)(1 * 1024 * 1024)); + + [NativeTypeName("#define HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER (0x00000001)")] + public const int HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER = (0x00000001); + + [NativeTypeName("#define HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION (0x00000002)")] + public const int HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION = (0x00000002); + + [NativeTypeName("#define HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY (0x00000004)")] + public const int HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY = (0x00000004); + + [NativeTypeName("#define HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY (0x00000008)")] + public const int HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY = (0x00000008); + + [NativeTypeName("#define HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING (0x00000001)")] + public const int HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING = (0x00000001); + + [NativeTypeName("#define HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER (0x00000002)")] + public const int HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER = (0x00000002); + + [NativeTypeName("#define HTTP_CREATE_REQUEST_QUEUE_FLAG_DELEGATION (0x00000008)")] + public const int HTTP_CREATE_REQUEST_QUEUE_FLAG_DELEGATION = (0x00000008); + + [NativeTypeName("#define HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY 0x00000001")] + public const int HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY = 0x00000001; + + [NativeTypeName("#define HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY 0x00000002")] + public const int HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY = 0x00000002; + + [NativeTypeName("#define HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER 0x00000001")] + public const int HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER = 0x00000001; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_DISCONNECT 0x00000001")] + public const int HTTP_SEND_RESPONSE_FLAG_DISCONNECT = 0x00000001; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_MORE_DATA 0x00000002")] + public const int HTTP_SEND_RESPONSE_FLAG_MORE_DATA = 0x00000002; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA 0x00000004")] + public const int HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA = 0x00000004; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING 0x00000008")] + public const int HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING = 0x00000008; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES 0x00000020")] + public const int HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES = 0x00000020; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_OPAQUE 0x00000040")] + public const int HTTP_SEND_RESPONSE_FLAG_OPAQUE = 0x00000040; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_GOAWAY 0x00000100")] + public const int HTTP_SEND_RESPONSE_FLAG_GOAWAY = 0x00000100; + + [NativeTypeName("#define HTTP_SEND_RESPONSE_FLAG_AUTOMATIC_CHUNKING 0x00000200")] + public const int HTTP_SEND_RESPONSE_FLAG_AUTOMATIC_CHUNKING = 0x00000200; + + [NativeTypeName("#define HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE 0x00000001")] + public const int HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE = 0x00000001; + + [NativeTypeName("#define HTTP_NULL_ID (0ui64)")] + public const ulong HTTP_NULL_ID = (0UL); + + [NativeTypeName("#define HTTP_BYTE_RANGE_TO_EOF ((ULONGLONG)-1)")] + public const ulong HTTP_BYTE_RANGE_TO_EOF = unchecked((ulong)(-1)); + + [NativeTypeName("#define HTTP_URL_FLAG_REMOVE_ALL 0x00000001")] + public const int HTTP_URL_FLAG_REMOVE_ALL = 0x00000001; + + [NativeTypeName("#define HTTP_RECEIVE_SECURE_CHANNEL_TOKEN 0x1")] + public const int HTTP_RECEIVE_SECURE_CHANNEL_TOKEN = 0x1; + + [NativeTypeName("#define HTTP_RECEIVE_FULL_CHAIN 0x2")] + public const int HTTP_RECEIVE_FULL_CHAIN = 0x2; + + [NativeTypeName("#define HTTP_REQUEST_SIZING_INFO_FLAG_TCP_FAST_OPEN 0x00000001")] + public const int HTTP_REQUEST_SIZING_INFO_FLAG_TCP_FAST_OPEN = 0x00000001; + + [NativeTypeName("#define HTTP_REQUEST_SIZING_INFO_FLAG_TLS_SESSION_RESUMPTION 0x00000002")] + public const int HTTP_REQUEST_SIZING_INFO_FLAG_TLS_SESSION_RESUMPTION = 0x00000002; + + [NativeTypeName("#define HTTP_REQUEST_SIZING_INFO_FLAG_TLS_FALSE_START 0x00000004")] + public const int HTTP_REQUEST_SIZING_INFO_FLAG_TLS_FALSE_START = 0x00000004; + + [NativeTypeName("#define HTTP_REQUEST_SIZING_INFO_FLAG_FIRST_REQUEST 0x00000008")] + public const int HTTP_REQUEST_SIZING_INFO_FLAG_FIRST_REQUEST = 0x00000008; + + [NativeTypeName("#define HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED (0x00000001)")] + public const int HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED = (0x00000001); + + [NativeTypeName("#define HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS 0x00000001")] + public const int HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS = 0x00000001; + + [NativeTypeName("#define HTTP_REQUEST_FLAG_IP_ROUTED 0x00000002")] + public const int HTTP_REQUEST_FLAG_IP_ROUTED = 0x00000002; + + [NativeTypeName("#define HTTP_REQUEST_FLAG_HTTP2 0x00000004")] + public const int HTTP_REQUEST_FLAG_HTTP2 = 0x00000004; + + [NativeTypeName("#define HTTP_REQUEST_FLAG_HTTP3 0x00000008")] + public const int HTTP_REQUEST_FLAG_HTTP3 = 0x00000008; + + [NativeTypeName("#define HTTP_REQUEST_FLAG_FAST_FORWARDING_ALLOWED 0x00000010")] + public const int HTTP_REQUEST_FLAG_FAST_FORWARDING_ALLOWED = 0x00000010; + + [NativeTypeName("#define HTTP_REQUEST_FLAG_FAST_FORWARDING_RESPONSE_ALLOWED HTTP_REQUEST_FLAG_FAST_FORWARDING_ALLOWED")] + public const int HTTP_REQUEST_FLAG_FAST_FORWARDING_RESPONSE_ALLOWED = 0x00000010; + + [NativeTypeName("#define HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE 0x00000001")] + public const int HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE = 0x00000001; + + [NativeTypeName("#define HTTP_RESPONSE_FLAG_MORE_ENTITY_BODY_EXISTS 0x00000002")] + public const int HTTP_RESPONSE_FLAG_MORE_ENTITY_BODY_EXISTS = 0x00000002; + + [NativeTypeName("#define HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER 0x00000001")] + public const int HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER = 0x00000001; + + [NativeTypeName("#define HTTP_SSL_CERT_SHA_HASH_LENGTH 20")] + public const int HTTP_SSL_CERT_SHA_HASH_LENGTH = 20; + + [NativeTypeName("#define HTTP_SSL_CERT_STORE_NAME_LENGTH 128")] + public const int HTTP_SSL_CERT_STORE_NAME_LENGTH = 128; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER 0x00000001")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER = 0x00000001; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT 0x00000002")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT = 0x00000002; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_REJECT 0x00000008")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_REJECT = 0x00000008; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2 0x00000010")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2 = 0x00000010; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_QUIC 0x00000020")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_QUIC = 0x00000020; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS13 0x00000040")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS13 = 0x00000040; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_OCSP_STAPLING 0x00000080")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_OCSP_STAPLING = 0x00000080; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_TOKEN_BINDING 0x00000100")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_TOKEN_BINDING = 0x00000100; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS 0x00000200")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS = 0x00000200; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS 0x00000400")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS = 0x00000400; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET 0x00000800")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET = 0x00000800; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12 0x00001000")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12 = 0x00001000; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CLIENT_CORRELATION 0x00002000")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CLIENT_CORRELATION = 0x00002000; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_SESSION_ID 0x00004000")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_SESSION_ID = 0x00004000; + + [NativeTypeName("#define HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CACHE_CLIENT_HELLO 0x00008000")] + public const int HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CACHE_CLIENT_HELLO = 0x00008000; + + [NativeTypeName("#define HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH 255")] + public const int HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH = 255; + + [NativeTypeName("#define HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED 0x00000001")] + public const int HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED = 0x00000001; + + [NativeTypeName("#define HTTP_REQUEST_PROPERTY_SNI_FLAG_NO_SNI 0x00000002")] + public const int HTTP_REQUEST_PROPERTY_SNI_FLAG_NO_SNI = 0x00000002; + + [NativeTypeName("#define HTTP_QUIC_KEEPALIVE_TIMEOUT_DISABLED ((ULONG)-1)")] + public const uint HTTP_QUIC_KEEPALIVE_TIMEOUT_DISABLED = unchecked((uint)(-1)); +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP2_SETTINGS_LIMITS_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP2_SETTINGS_LIMITS_PARAM.cs new file mode 100644 index 0000000000..2493d92c8e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP2_SETTINGS_LIMITS_PARAM.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP2_SETTINGS_LIMITS_PARAM +{ + /// + [NativeTypeName("DWORD")] + public uint Http2MaxSettingsPerFrame; + + /// + [NativeTypeName("DWORD")] + public uint Http2MaxSettingsPerMinute; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP2_WINDOW_SIZE_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP2_WINDOW_SIZE_PARAM.cs new file mode 100644 index 0000000000..e92f84348b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP2_WINDOW_SIZE_PARAM.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP2_WINDOW_SIZE_PARAM +{ + /// + [NativeTypeName("DWORD")] + public uint Http2ReceiveWindowSize; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.cs b/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.cs new file mode 100644 index 0000000000..b225ecf853 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTPAPI_VERSION +{ + /// + public ushort HttpApiMajorVersion; + + /// + public ushort HttpApiMinorVersion; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.xml b/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.xml new file mode 100644 index 0000000000..f44e4e31d3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTPAPI_VERSION.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTPAPI_VERSION structure defines the version of the HTTP Server API. This is not to be confused with the version of the HTTP protocol used, which is stored in anHTTP_VERSION structure. + + + Major version of the HTTP Server API. + + + Minor version of the HTTP Server API. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.cs new file mode 100644 index 0000000000..09b2410825 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_503_RESPONSE_VERBOSITY +{ + /// + Http503ResponseVerbosityBasic, + + /// + Http503ResponseVerbosityLimited, + + /// + Http503ResponseVerbosityFull, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.xml new file mode 100644 index 0000000000..5dfea777d9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_503_RESPONSE_VERBOSITY.xml @@ -0,0 +1,20 @@ + + + + + + + The HTTP_503_RESPONSE_VERBOSITY enumeration defines the verbosity levels for a 503, service unavailable, error responses. + This structure must be used when setting or querying the on a request queue. + + + + A 503 response is not sent; the connection is reset. This is the default HTTP Server API behavior. + + + The HTTP Server API sends a 503 response with a "Service Unavailable" reason phrase. The HTTP Server closes the TCP connection after sending the response, so the client has to re-connect. + + + The HTTP Server API sends a 503 response with a detailed reason phrase. The HTTP Server closes the TCP connection after sending the response, so the client has to re-connect. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.cs new file mode 100644 index 0000000000..3d7d527a09 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_AUTHENTICATION_HARDENING_LEVELS +{ + /// + HttpAuthenticationHardeningLegacy = 0, + + /// + HttpAuthenticationHardeningMedium, + + /// + HttpAuthenticationHardeningStrict, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.xml new file mode 100644 index 0000000000..618439281c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_AUTHENTICATION_HARDENING_LEVELS.xml @@ -0,0 +1,17 @@ + + + + + + Server Hardening level. + + + Server is not hardened and operates without Channel Binding Token (CBT) support. + + + Server is partially hardened. Clients that support CBT are serviced appropriately. Legacy clients are also serviced. + + + Server is hardened. Only clients that supported CBT are serviced. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_AUTH_STATUS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_AUTH_STATUS.cs new file mode 100644 index 0000000000..dd7e153d83 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_AUTH_STATUS.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_AUTH_STATUS +{ + /// + HttpAuthStatusSuccess, + + /// + HttpAuthStatusNotAuthenticated, + + /// + HttpAuthStatusFailure, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.cs new file mode 100644 index 0000000000..512bf777bd --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_BANDWIDTH_LIMIT_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("ULONG")] + public uint MaxBandwidth; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.xml new file mode 100644 index 0000000000..adb8d37dec --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BANDWIDTH_LIMIT_INFO.xml @@ -0,0 +1,17 @@ + + + + + + + The HTTP_BANDWIDTH_LIMIT_INFO structure is used to set or query the bandwidth throttling limit. + This structure must be used when setting or querying the on a URL Group or server session. + + + + The structure specifying whether the property is present. + + + The maximum allowed bandwidth rate in bytesper second. Setting the value to HTTP_LIMIT_INFINITE allows unlimited bandwidth rate. The value cannot be smaller than HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.cs new file mode 100644 index 0000000000..1fdf36f1d7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_BINDING_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + public HANDLE RequestQueueHandle; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.xml new file mode 100644 index 0000000000..7960eac8ce --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BINDING_INFO.xml @@ -0,0 +1,17 @@ + + + + + + + The HTTP_BINDING_INFO structure is used to associate a URL Group with a request queue. + This structure must be used when setting or querying the on a URL Group. + + + + The structure specifying whether the property is present. + + + The request queue that is associated with the URL group. The structure can be used to remove an existing binding by setting this parameter to NULL. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.cs new file mode 100644 index 0000000000..494034ca70 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_BYTE_RANGE +{ + /// + public ULARGE_INTEGER StartingOffset; + + /// + public ULARGE_INTEGER Length; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.xml new file mode 100644 index 0000000000..9e0243ee1a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_BYTE_RANGE.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_BYTE_RANGE structure is used to specify a byte range within a cached response fragment, file, or other data block. + + + Starting offset of the byte range. + + + Size, in bytes, of the range. If this member is HTTP_BYTE_RANGE_TO_EOF, the range extends from the starting offset to the end of the file or data block. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.cs new file mode 100644 index 0000000000..e4db75e7ba --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_CACHE_POLICY +{ + /// + public HTTP_CACHE_POLICY_TYPE Policy; + + /// + [NativeTypeName("ULONG")] + public uint SecondsToLive; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.xml new file mode 100644 index 0000000000..b9fd1c63d5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY.xml @@ -0,0 +1,58 @@ + + + + + + TheHTTP_CACHE_POLICY structure is used to define a cache policy associated with a cached response fragment. + + + + This parameter is one of the following values from the to control how an associated response or response fragment is cached. + + + Value + Meaning + + + + + + + HttpCachePolicyNocache + + + + + Do not cache the data at all. + + + + + + + HttpCachePolicyUserInvalidates + + + + + Cache the data until the application explicitly releases it. + + + + + + + HttpCachePolicyTimeToLive + + + + + Cache the data for a number of seconds specified by the SecondsToLive member. + + + + + + When the Policy member is equal to HttpCachePolicyTimeToLive, data is cached for SecondsToLive seconds before it is released. For other values of Policy, SecondsToLive is ignored. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.cs new file mode 100644 index 0000000000..110856f0c3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_CACHE_POLICY_TYPE +{ + /// + HttpCachePolicyNocache, + + /// + HttpCachePolicyUserInvalidates, + + /// + HttpCachePolicyTimeToLive, + + /// + HttpCachePolicyMaximum, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.xml new file mode 100644 index 0000000000..6e7e9cd422 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CACHE_POLICY_TYPE.xml @@ -0,0 +1,20 @@ + + + + + + TheHTTP_CACHE_POLICY_TYPE enumeration type defines available cache policies. It is used to restrict the values of the Policy member of the structure, which in turn is used in the pCachePolicy parameter of the function to specify how a response fragment is cached. + + + Do not cache this value at all. + + + Cache this value until the user provides a different one. + + + Cache this value for a specified time and then remove it from the cache. + + + Terminates the enumeration; not used to determine policy. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_ENTRY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_ENTRY.cs new file mode 100644 index 0000000000..3ae648b845 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_ENTRY.cs @@ -0,0 +1,34 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_CERT_CONFIG_ENTRY +{ + /// + [NativeTypeName("BYTE[20]")] + public _CertHash_e__FixedBuffer CertHash; + + /// + [NativeTypeName("WCHAR[128]")] + public _CertStoreName_e__FixedBuffer CertStoreName; + + /// + [InlineArray(20)] + public partial struct _CertHash_e__FixedBuffer + { + public byte e0; + } + + /// + [InlineArray(128)] + public partial struct _CertStoreName_e__FixedBuffer + { + public char e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_PARAM.cs new file mode 100644 index 0000000000..f23e2847e8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CERT_CONFIG_PARAM.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_CERT_CONFIG_PARAM +{ + /// + [NativeTypeName("ULONG")] + public uint CertConfigCount; + + /// + [NativeTypeName("PHTTP_CERT_CONFIG_ENTRY")] + public HTTP_CERT_CONFIG_ENTRY* CertConfigs; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CHANNEL_BIND_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CHANNEL_BIND_INFO.cs new file mode 100644 index 0000000000..65cc7f3de2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CHANNEL_BIND_INFO.cs @@ -0,0 +1,25 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_CHANNEL_BIND_INFO +{ + /// + public HTTP_AUTHENTICATION_HARDENING_LEVELS Hardening; + + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + [NativeTypeName("PHTTP_SERVICE_BINDING_BASE *")] + public HTTP_SERVICE_BINDING_BASE** ServiceNames; + + /// + [NativeTypeName("ULONG")] + public uint NumberOfServiceNames; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.cs new file mode 100644 index 0000000000..c258967cc7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_CONNECTION_LIMIT_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("ULONG")] + public uint MaxConnections; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.xml new file mode 100644 index 0000000000..6f9b65ce2c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CONNECTION_LIMIT_INFO.xml @@ -0,0 +1,17 @@ + + + + + + + The HTTP_CONNECTION_LIMIT_INFO structure is used to set or query the limit on the maximum number of outstanding connections for a URL Group. + This structure must be used when setting or querying the on a URL Group. + + + + The structure specifying whether the property is present. + + + The number of connections allowed. Setting this value to HTTP_LIMIT_INFINITE allows an unlimited number of connections. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.cs b/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.cs new file mode 100644 index 0000000000..9f3936a2b7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.cs @@ -0,0 +1,38 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_COOKED_URL +{ + /// + public ushort FullUrlLength; + + /// + public ushort HostLength; + + /// + public ushort AbsPathLength; + + /// + public ushort QueryStringLength; + + /// + [NativeTypeName("PCWSTR")] + public char* pFullUrl; + + /// + [NativeTypeName("PCWSTR")] + public char* pHost; + + /// + [NativeTypeName("PCWSTR")] + public char* pAbsPath; + + /// + [NativeTypeName("PCWSTR")] + public char* pQueryString; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.xml b/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.xml new file mode 100644 index 0000000000..4b8998bade --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_COOKED_URL.xml @@ -0,0 +1,32 @@ + + + + + + TheHTTP_COOKED_URL structure contains a validated, canonical, UTF-16 Unicode-encoded URL request string together with pointers into it and element lengths. This is the string that the HTTP Server API matches against registeredUrlPrefix strings in order to route the request appropriately. + + + Size, in bytes, of the data pointed to by the pFullUrl member, not including a terminating null character. + + + Size, in bytes, of the data pointed to by the pHost member. + + + Size, in bytes, of the data pointed to by the pAbsPath member. + + + Size, in bytes, of the data pointed to by the pQueryString member. + + + Pointer to the scheme element at the beginning of the URL (must be either "http://..." or "https://..."). + + + Pointer to the first character in the host element, immediately following the double slashes at the end of the scheme element. + + + Pointer to the third forward slash ("/") in the string. In a UrlPrefix string, this is the slash immediately preceding the relativeUri element. + + + Pointer to the first question mark (?) in the string, or NULL if there is none. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.cs new file mode 100644 index 0000000000..ede2964c8f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID +{ + /// + CreateRequestQueueExternalIdProperty = 1, + + /// + CreateRequestQueueMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO.cs new file mode 100644 index 0000000000..d0f0fa09eb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO +{ + /// + public HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID PropertyId; + + /// + [NativeTypeName("ULONG")] + public uint PropertyInfoLength; + + /// + [NativeTypeName("PVOID")] + public void* PropertyInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.cs b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.cs new file mode 100644 index 0000000000..c4d56c47c7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.cs @@ -0,0 +1,184 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_DATA_CHUNK +{ + /// + public HTTP_DATA_CHUNK_TYPE DataChunkType; + + /// + [NativeTypeName("__AnonymousRecord_http_L1292_C5")] + public _Anonymous_e__Union Anonymous; + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._FromMemory_e__Struct FromMemory + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.FromMemory; + } + } + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._FromFileHandle_e__Struct FromFileHandle + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.FromFileHandle; + } + } + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._FromFragmentCache_e__Struct FromFragmentCache + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.FromFragmentCache; + } + } + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._FromFragmentCacheEx_e__Struct FromFragmentCacheEx + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.FromFragmentCacheEx; + } + } + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._Trailers_e__Struct Trailers + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.Trailers; + } + } + + /// + [UnscopedRef] + public ref _Anonymous_e__Union._FromWinHttpFastForwarding_e__Struct FromWinHttpFastForwarding + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.FromWinHttpFastForwarding; + } + } + + /// + [StructLayout(LayoutKind.Explicit)] + public partial struct _Anonymous_e__Union + { + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1298_C9")] + public _FromMemory_e__Struct FromMemory; + + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1309_C9")] + public _FromFileHandle_e__Struct FromFileHandle; + + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1320_C9")] + public _FromFragmentCache_e__Struct FromFragmentCache; + + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1331_C9")] + public _FromFragmentCacheEx_e__Struct FromFragmentCacheEx; + + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1342_C9")] + public _Trailers_e__Struct Trailers; + + /// + [FieldOffset(0)] + [NativeTypeName("__AnonymousRecord_http_L1349_C9")] + public _FromWinHttpFastForwarding_e__Struct FromWinHttpFastForwarding; + + /// + public unsafe partial struct _FromMemory_e__Struct + { + /// + [NativeTypeName("PVOID")] + public void* pBuffer; + + /// + [NativeTypeName("ULONG")] + public uint BufferLength; + } + + /// + public partial struct _FromFileHandle_e__Struct + { + /// + public HTTP_BYTE_RANGE ByteRange; + + /// + public HANDLE FileHandle; + } + + /// + public unsafe partial struct _FromFragmentCache_e__Struct + { + /// + public ushort FragmentNameLength; + + /// + [NativeTypeName("PCWSTR")] + public char* pFragmentName; + } + + /// + public unsafe partial struct _FromFragmentCacheEx_e__Struct + { + /// + public HTTP_BYTE_RANGE ByteRange; + + /// + [NativeTypeName("PCWSTR")] + public char* pFragmentName; + } + + /// + public unsafe partial struct _Trailers_e__Struct + { + /// + public ushort TrailerCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* pTrailers; + } + + /// + public partial struct _FromWinHttpFastForwarding_e__Struct + { + /// + public HTTP_WINHTTP_FAST_FORWARDING_DATA WhFastForwardingData; + } + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.xml b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.xml new file mode 100644 index 0000000000..6e06c4ab49 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK.xml @@ -0,0 +1,50 @@ + + + + + + The HTTP_DATA_CHUNK structure represents an individual block of data either in memory, in a file, or in the HTTP Server API response-fragment cache. + + + Type of data store. This member can be one of the values from the HTTP_DATA_CHUNK_TYPE enumeration. + + + + Pointer to the starting memory address of the data block. + + + Length, in bytes, of the data block. + + + + An structure that specifies all or part of the file. To specify the entire file, set the StartingOffset member to zero and the Length member to HTTP_BYTE_RANGE_TO_EOF. + + + Open handle to the file in question. + + + + Length, in bytes, of the fragment name not including the terminating null character. + + + Pointer to a string that contains the fragment name assigned when the fragment was added to the response-fragment cache using the function. + + + + An structure specifying the byte range in the cached fragment. + + + + Pointer to a string that contains the fragment name assigned when the fragment was added to the response-fragment cache using the function. The length of the string cannot exceed 65532 bytes. +
+ Note  This string must be NULL terminated.
+
+
+ + + Count of the number of structures in the array pointed to by pTrailers. + + + Pointer to an array of structures containing the trailers. + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.cs new file mode 100644 index 0000000000..af4d60f203 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.cs @@ -0,0 +1,31 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_DATA_CHUNK_TYPE +{ + /// + HttpDataChunkFromMemory, + + /// + HttpDataChunkFromFileHandle, + + /// + HttpDataChunkFromFragmentCache, + + /// + HttpDataChunkFromFragmentCacheEx, + + /// + HttpDataChunkTrailers, + + /// + HttpDataChunkFromWinHttpFastForwarding, + + /// + HttpDataChunkMaximum, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.xml new file mode 100644 index 0000000000..8d84478fe3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DATA_CHUNK_TYPE.xml @@ -0,0 +1,32 @@ + + + + + + Defines the data source for a data chunk. + + + The data source is a memory data block. The union should be interpreted as a FromMemory structure. + + + The data source is a file handle data block. The union should be interpreted as a FromFileHandle structure. + + + The data source is a fragment cache data block. The union should be interpreted as a FromFragmentCache structure. + + + + The data source is a fragment cache data block. The union should be interpreted as a FromFragmentCacheEx structure. + + Windows Server 2003 with SP1 and Windows XP with SP2:  This flag is not supported. + + + + + The data source is a trailers data block. The union should be interpreted as a Trailers structure. + + Windows 10, version 2004 and prior:  This flag is not supported. + + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.cs b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.cs new file mode 100644 index 0000000000..20ad9737fb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_DELEGATE_REQUEST_PROPERTY_ID +{ + /// + DelegateRequestReservedProperty, + + /// + DelegateRequestDelegateUrlProperty, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.xml b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.xml new file mode 100644 index 0000000000..17462f164e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_ID.xml @@ -0,0 +1,14 @@ + + + + + + Defines constants that specify a type of property information for a delegate request. + + + This property is reserved. + + + Specifies the property that provides the target url to which a delegated request should be delivered. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.cs new file mode 100644 index 0000000000..421aa0068a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_DELEGATE_REQUEST_PROPERTY_INFO +{ + /// + public HTTP_DELEGATE_REQUEST_PROPERTY_ID PropertyId; + + /// + [NativeTypeName("ULONG")] + public uint PropertyInfoLength; + + /// + [NativeTypeName("PVOID")] + public void* PropertyInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.xml new file mode 100644 index 0000000000..e5c959f3e5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_DELEGATE_REQUEST_PROPERTY_INFO.xml @@ -0,0 +1,17 @@ + + + + + + Describes additional property information when delegating a request. + + + The type of property info pointed to by this struct. + + + The length in bytes of the value of the PropertyInfo parameter. + + + A pointer to the property information. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.cs new file mode 100644 index 0000000000..68548896a6 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_ENABLED_STATE +{ + /// + HttpEnabledStateActive, + + /// + HttpEnabledStateInactive, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.xml new file mode 100644 index 0000000000..49887792fd --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_ENABLED_STATE.xml @@ -0,0 +1,17 @@ + + + + + + + The HTTP_ENABLED_STATE enumeration defines the state of a request queue, server session, or URL Group. + This enumeration is used in the struct + + + + The HTTP Server API object is enabled. + + + The HTTP Server API object is disabled. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_ERROR_HEADERS_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_ERROR_HEADERS_PARAM.cs new file mode 100644 index 0000000000..3d02f63459 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_ERROR_HEADERS_PARAM.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_ERROR_HEADERS_PARAM +{ + /// + public ushort StatusCode; + + /// + public ushort HeaderCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* Headers; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_FAST_FORWARD_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_FAST_FORWARD_INFO.cs new file mode 100644 index 0000000000..0db7aa0270 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_FAST_FORWARD_INFO.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_FAST_FORWARD_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("BOOLEAN")] + public byte EnableFastForwarding; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_FEATURE_ID.cs b/sources/Interop/Windows/Windows/um/http/HTTP_FEATURE_ID.cs new file mode 100644 index 0000000000..079568f363 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_FEATURE_ID.cs @@ -0,0 +1,52 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_FEATURE_ID +{ + /// + HttpFeatureUnknown = 0, + + /// + HttpFeatureResponseTrailers = 1, + + /// + HttpFeatureApiTimings = 2, + + /// + HttpFeatureDelegateEx = 3, + + /// + HttpFeatureHttp3 = 4, + + /// + HttpFeatureTlsSessionTickets = 5, + + /// + HttpFeatureDisableTlsSessionId = 6, + + /// + HttpFeatureTlsDualCerts = 7, + + /// + HttpFeatureAutomaticChunkedEncoding = 8, + + /// + HttpFeatureDedicatedReqQueueDelegationType = 9, + + /// + HttpFeatureFastForwardResponse = 10, + + /// + HttpFeatureCacheTlsClientHello = 11, + + /// + HttpFeatureLast = 12, + + /// + HttpFeaturemax = unchecked((int)(0xFFFFFFFF)), +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_FLOWRATE_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_FLOWRATE_INFO.cs new file mode 100644 index 0000000000..bb9a275e1e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_FLOWRATE_INFO.cs @@ -0,0 +1,25 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_FLOWRATE_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("ULONG")] + public uint MaxBandwidth; + + /// + [NativeTypeName("ULONG")] + public uint MaxPeakBandwidth; + + /// + [NativeTypeName("ULONG")] + public uint BurstSize; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.cs b/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.cs new file mode 100644 index 0000000000..94233345b8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.cs @@ -0,0 +1,172 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_HEADER_ID +{ + /// + HttpHeaderCacheControl = 0, + + /// + HttpHeaderConnection = 1, + + /// + HttpHeaderDate = 2, + + /// + HttpHeaderKeepAlive = 3, + + /// + HttpHeaderPragma = 4, + + /// + HttpHeaderTrailer = 5, + + /// + HttpHeaderTransferEncoding = 6, + + /// + HttpHeaderUpgrade = 7, + + /// + HttpHeaderVia = 8, + + /// + HttpHeaderWarning = 9, + + /// + HttpHeaderAllow = 10, + + /// + HttpHeaderContentLength = 11, + + /// + HttpHeaderContentType = 12, + + /// + HttpHeaderContentEncoding = 13, + + /// + HttpHeaderContentLanguage = 14, + + /// + HttpHeaderContentLocation = 15, + + /// + HttpHeaderContentMd5 = 16, + + /// + HttpHeaderContentRange = 17, + + /// + HttpHeaderExpires = 18, + + /// + HttpHeaderLastModified = 19, + + /// + HttpHeaderAccept = 20, + + /// + HttpHeaderAcceptCharset = 21, + + /// + HttpHeaderAcceptEncoding = 22, + + /// + HttpHeaderAcceptLanguage = 23, + + /// + HttpHeaderAuthorization = 24, + + /// + HttpHeaderCookie = 25, + + /// + HttpHeaderExpect = 26, + + /// + HttpHeaderFrom = 27, + + /// + HttpHeaderHost = 28, + + /// + HttpHeaderIfMatch = 29, + + /// + HttpHeaderIfModifiedSince = 30, + + /// + HttpHeaderIfNoneMatch = 31, + + /// + HttpHeaderIfRange = 32, + + /// + HttpHeaderIfUnmodifiedSince = 33, + + /// + HttpHeaderMaxForwards = 34, + + /// + HttpHeaderProxyAuthorization = 35, + + /// + HttpHeaderReferer = 36, + + /// + HttpHeaderRange = 37, + + /// + HttpHeaderTe = 38, + + /// + HttpHeaderTranslate = 39, + + /// + HttpHeaderUserAgent = 40, + + /// + HttpHeaderRequestMaximum = 41, + + /// + HttpHeaderAcceptRanges = 20, + + /// + HttpHeaderAge = 21, + + /// + HttpHeaderEtag = 22, + + /// + HttpHeaderLocation = 23, + + /// + HttpHeaderProxyAuthenticate = 24, + + /// + HttpHeaderRetryAfter = 25, + + /// + HttpHeaderServer = 26, + + /// + HttpHeaderSetCookie = 27, + + /// + HttpHeaderVary = 28, + + /// + HttpHeaderWwwAuthenticate = 29, + + /// + HttpHeaderResponseMaximum = 30, + + /// + HttpHeaderMaximum = 41, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.xml b/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.xml new file mode 100644 index 0000000000..21715bdfdd --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_HEADER_ID.xml @@ -0,0 +1,173 @@ + + + + + + TheHTTP_HEADER_ID enumeration type lists known headers for HTTP requests and responses, and associates an array index with each such header. It is used to size and access the KnownHeaders array members of the and structures. + + + Used to specify caching behavior along the request or response chain, overriding the default caching algorithm. + + + Allows the sender to specify options that are desired for that particular connection. These are used for a single connection only and must not be communicated by proxies over further connections. + + + The Date is a general header field that indicates the time that the request or response was sent. + + + Based on the keepalive XML element (see RFC 2518, section 12.12.1, page 66); a list of URIs included in the KeepAlive header must be "live" after they are copied (moved) to the destination. + + + Used to include optional, implementation-specific directives that might apply to any recipient along the request/response chain. + + + Indicates that specified header fields are present in the trailer of a message encoded with chunked transfer-coding. + + + Indicates what, if any, transformations have been applied to the message body in transit. + + + Allows the client to specify one or more other communication protocols it would prefer to use if the server can comply. + + + The Via header field indicates the path taken by the request. + + + This is a response header that contains the 3-digit warn code along with the reason phrase. + + + Lists the set of methods supported by the resource identified by the Request-URI. + + + The size of the message body in decimal bytes. + + + The media type of the message body. + + + The encoding scheme for the message body. + + + Provides the natural language of the intended audience. + + + Location of the resource for the entity enclosed in the message when that entity is accessible from a location separate from the requested resource's URI. + + + An MD5 digest of the entity-body used to provide end-to-end message integrity check (MIC) of the entity-body. + + + The content range header is sent with a partial entity body to specify where in the full entity body the partial body should be applied. + + + The date and time after which the message content expires. + + + Indicates the date and time at which the origin server believes the variant was last modified. + + + Used with the INVITE, OPTIONS, and REGISTER methods to indicate what media types are acceptable in the response. + + + Indicates the character sets that are acceptable for the response. + + + The content encodings that are acceptable in the response. + + + Used by the client to indicate to the server which language it would prefer to receive reason phrases, session descriptions, or status responses. + + + The user-agent can authenticate itself with a server by sending the Authorization request header field with the request. The field contains the credentials for the domain that the user is requesting. + + + The cookie request header contains data used to maintain client state with the server. Cookie data is obtained from a response sent with HttpHeaderSetCookie. + + + Indicates the specific server behaviors that are required by the client. + + + The From header field specifies the initiator of the SIP request or response message. + + + Specifies the Internet host and port number of the requested resource. This is obtained from the original URI given by the user or referring resource. + + + The If-Match request header field is used with a method to make it conditional. A client that has one or more entities previously obtained from the resource can verify that one of those entities is current by including a list of their associated entity tags in the If-Match header field. + + + The If-Modified-Since request header field is used with a method to make it conditional. If the requested variant has not been modified since the time specified in this field, an entity is not returned from the server; instead, a 304 (not modified) response is returned without any message-body. + + + The If-None-Match request-header field is used with a method to make it conditional. When a client has obtained one or more entities from a resource, it can verify that none of those entities is current by including a list of their associated entity tags in the If-None-Match header field. The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction overhead, and to prevent a method such as PUT from inadvertently modifying an existing resource when the client believes that the resource does not exist. + + + If a client has a partial copy of an entity in its cache, and wishes to obtain an up-to-date copy of the entire entity, it can use the If-Range header. Informally, its meaning is, "if the entity is unchanged, send me the part(s) I am missing; otherwise, send me the entire new entity." + + + + The If-Unmodified-Since request-header field is used with a method to make it conditional. If the requested resource has not been modified since the time specified in this field, the server performs the requested operation as if the If-Unmodified-Since header were not present, but + if the requested resource has been modified, the server returns a 412 error (Precondition Failed). + + + + The maximum number of proxies or gateways that can forward the request. + + + This header field is used by the client to identify itself with a proxy. + + + Allows the client to specify, for the server's benefit, the address (URI) of the resource from which the Request-URI was obtained. + + + Allows a client to request a part of an entity instead of the whole. + + + This header field contains the recipient of the SIP request or response message. + + + Allows the client to specify whether it wants the source representation or programmatic interpretation of the requested content. + + + Indicates what extension transfer-codings the client accepts in the response and whether or not the client accepts trailer fields in a chunked transfer-coding. + + + Not a value that actually designates a header; instead, it is used to count the enumerated Request headers. + + + Allows the server to indicate its acceptance of range requests for a resource. + + + Conveys the sender's estimate of the amount of time since the response (or its revalidation) was generated at the origin server. + + + Provides the current value of the entity tag for the requested variant. + + + Used to redirect the recipient to a location other than the Request-URI for completion of the request or identification of a new resource. + + + The response field that must be included as a part of the 407 response. The field includes the authentication scheme and parameters that apply to the proxy for this Request-URI. + + + The length of time that the service is expected to be unavailable to the requesting client. + + + This is a response header field that contains information about the server that is handling the request. + + + The set-cookie response header contains data used to maintain client state in future requests sent with HttpHeaderCookie. + + + Indicates the set of request header fields that fully determines, while the response is fresh, whether a cache is permitted to use the response to reply to a subsequent request without revalidation. + + + The WWW_Authenticate header field contains the authentication schemes and parameters applicable to the Request-URI. + + + Not a value that actually designates a header; instead, it is used to count the enumerated Response headers. + + + Not a value that actually designates a header; instead, it is used to count all the enumerated headers. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.cs b/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.cs new file mode 100644 index 0000000000..b188a04d0f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_KNOWN_HEADER +{ + /// + public ushort RawValueLength; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pRawValue; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.xml b/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.xml new file mode 100644 index 0000000000..3ddc6e1525 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_KNOWN_HEADER.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_KNOWN_HEADER structure contains the header values for a known header from an HTTP request or HTTP response. + + + Size, in bytes, of the 8-bit string pointed to by the pRawValue member, not counting a terminating null character, if present. If RawValueLength is zero, then the value of the pRawValue element is meaningless. + + + Pointer to the text of this HTTP header. Use RawValueLength to determine where this text ends rather than relying on the string to have a terminating null. The format of the header text is specified inRFC 2616. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.cs new file mode 100644 index 0000000000..6481ccb0b4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_LISTEN_ENDPOINT_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("BOOLEAN")] + public byte EnableSharing; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.xml new file mode 100644 index 0000000000..7343b19edb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LISTEN_ENDPOINT_INFO.xml @@ -0,0 +1,14 @@ + + + + + + Controls whether IP-based URLs should listen on the specific IP address or on a wildcard. + + + The structure that specifies if the property is present. + + + A Boolean value that specifies whether sharing is enabled. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_INFO.cs new file mode 100644 index 0000000000..6e21ac5f97 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_INFO.cs @@ -0,0 +1,59 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_LOGGING_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("ULONG")] + public uint LoggingFlags; + + /// + [NativeTypeName("PCWSTR")] + public char* SoftwareName; + + /// + public ushort SoftwareNameLength; + + /// + public ushort DirectoryNameLength; + + /// + [NativeTypeName("PCWSTR")] + public char* DirectoryName; + + /// + public HTTP_LOGGING_TYPE Format; + + /// + [NativeTypeName("ULONG")] + public uint Fields; + + /// + [NativeTypeName("PVOID")] + public void* pExtFields; + + /// + public ushort NumOfExtFields; + + /// + public ushort MaxRecordSize; + + /// + public HTTP_LOGGING_ROLLOVER_TYPE RolloverType; + + /// + [NativeTypeName("ULONG")] + public uint RolloverSize; + + /// + [NativeTypeName("PSECURITY_DESCRIPTOR")] + public void* pSecurityDescriptor; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_ROLLOVER_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_ROLLOVER_TYPE.cs new file mode 100644 index 0000000000..40af3d1e33 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_ROLLOVER_TYPE.cs @@ -0,0 +1,25 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_LOGGING_ROLLOVER_TYPE +{ + /// + HttpLoggingRolloverSize, + + /// + HttpLoggingRolloverDaily, + + /// + HttpLoggingRolloverWeekly, + + /// + HttpLoggingRolloverMonthly, + + /// + HttpLoggingRolloverHourly, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_TYPE.cs new file mode 100644 index 0000000000..0d86924d3c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOGGING_TYPE.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_LOGGING_TYPE +{ + /// + HttpLoggingTypeW3C, + + /// + HttpLoggingTypeIIS, + + /// + HttpLoggingTypeNCSA, + + /// + HttpLoggingTypeRaw, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.cs new file mode 100644 index 0000000000..1fc9f765a5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_LOG_DATA +{ + /// + public HTTP_LOG_DATA_TYPE Type; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.xml b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.xml new file mode 100644 index 0000000000..9849edb6c2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA.xml @@ -0,0 +1,11 @@ + + + + + + The HTTP_LOG_DATA structure contains a value that specifies the type of the log data. + + + An enumeration value that specifies the type. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.cs new file mode 100644 index 0000000000..f197984b31 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_LOG_DATA_TYPE +{ + /// + HttpLogDataTypeFields = 0, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.xml new file mode 100644 index 0000000000..dd2c1be54f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_DATA_TYPE.xml @@ -0,0 +1,11 @@ + + + + + + The HTTP_LOG_DATA_TYPE enumeration identifies the type of log data. + + + The structure is used for logging a request. This structure is passed to an or call. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.cs b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.cs new file mode 100644 index 0000000000..13432c0c51 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.cs @@ -0,0 +1,113 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_LOG_FIELDS_DATA +{ + /// + public HTTP_LOG_DATA Base; + + /// + public ushort UserNameLength; + + /// + public ushort UriStemLength; + + /// + public ushort ClientIpLength; + + /// + public ushort ServerNameLength; + + /// + public ushort ServiceNameLength; + + /// + public ushort ServerIpLength; + + /// + public ushort MethodLength; + + /// + public ushort UriQueryLength; + + /// + public ushort HostLength; + + /// + public ushort UserAgentLength; + + /// + public ushort CookieLength; + + /// + public ushort ReferrerLength; + + /// + [NativeTypeName("PWCHAR")] + public char* UserName; + + /// + [NativeTypeName("PWCHAR")] + public char* UriStem; + + /// + [NativeTypeName("PCHAR")] + public sbyte* ClientIp; + + /// + [NativeTypeName("PCHAR")] + public sbyte* ServerName; + + /// + [NativeTypeName("PCHAR")] + public sbyte* ServiceName; + + /// + [NativeTypeName("PCHAR")] + public sbyte* ServerIp; + + /// + [NativeTypeName("PCHAR")] + public sbyte* Method; + + /// + [NativeTypeName("PCHAR")] + public sbyte* UriQuery; + + /// + [NativeTypeName("PCHAR")] + public sbyte* Host; + + /// + [NativeTypeName("PCHAR")] + public sbyte* UserAgent; + + /// + [NativeTypeName("PCHAR")] + public sbyte* Cookie; + + /// + [NativeTypeName("PCHAR")] + public sbyte* Referrer; + + /// + public ushort ServerPort; + + /// + public ushort ProtocolStatus; + + /// + [NativeTypeName("ULONG")] + public uint Win32Status; + + /// + public HTTP_VERB MethodNum; + + /// + public ushort SubStatus; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.xml b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.xml new file mode 100644 index 0000000000..8fae753fc1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_LOG_FIELDS_DATA.xml @@ -0,0 +1,96 @@ + + + + + + The HTTP_LOG_FIELDS_DATA structure is used to pass the fields that are logged for an HTTP response when WC3 logging is enabled. + + + Initialize this member to the HttpLogDataTypeFields value of the enumeration. + + + The size, in bytes, of the user name member. + + + The size, in bytes, of the URI stem member. + + + The size, in bytes, of the client IP address member. + + + The size, in bytes, of the server name member. + + + + The size, in bytes, of the server IP address member. + + + The size, in bytes, of the HTTP method member. + + + The size, in bytes, of the URI query member. + + + The size, in bytes, of the host name member. + + + The size, in bytes, of the user agent member. + + + The size, in bytes, of the cookie member. + + + The size, in bytes, of the referrer member. + + + The name of the user. + + + The URI stem. + + + The IP address of the client. + + + The name of the server. + + + The name of the service. + + + The IP address of the server. + + + The HTTP method. + + + The URI query. + + + The host information from the request. + + + The user agent name. + + + The cookie provided by the application. + + + The referrer. + + + The port for the server. + + + The protocol status. + + + The win32 status. + + + The method number. + + + The sub status. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.cs new file mode 100644 index 0000000000..e6224dc3ab --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.cs @@ -0,0 +1,24 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_MULTIPLE_KNOWN_HEADERS +{ + /// + public HTTP_HEADER_ID HeaderId; + + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + public ushort KnownHeaderCount; + + /// + [NativeTypeName("PHTTP_KNOWN_HEADER")] + public HTTP_KNOWN_HEADER* KnownHeaders; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.xml new file mode 100644 index 0000000000..3e32eaf9ce --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_MULTIPLE_KNOWN_HEADERS.xml @@ -0,0 +1,40 @@ + + + + + + The HTTP_MULTIPLE_KNOWN_HEADERS structure specifies the headers that are included in an HTTP response when more than one header is required. + + + A member of the enumeration specifying the response header ID. + + + + The flags corresponding to the response header in the HeaderId member. This member is used only when the WWW-Authenticate header is present. This can be zero or the following: + + + Flag + Meaning + + + + + + + HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER + + + + + The specified order of authentication schemes is preserved on the challenge response. + + + + + + The number of elements in the array specified in the KnownHeaders member. + + + A pointer to the first element in the array of structures. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM.cs new file mode 100644 index 0000000000..1e7864b37b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_PERFORMANCE_PARAM +{ + /// + public HTTP_PERFORMANCE_PARAM_TYPE Type; + + /// + [NativeTypeName("ULONG")] + public uint BufferSize; + + /// + [NativeTypeName("PVOID")] + public void* Buffer; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM_TYPE.cs new file mode 100644 index 0000000000..1f115a4ebb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PERFORMANCE_PARAM_TYPE.cs @@ -0,0 +1,31 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_PERFORMANCE_PARAM_TYPE +{ + /// + PerformanceParamSendBufferingFlags, + + /// + PerformanceParamAggressiveICW, + + /// + PerformanceParamMaxSendBufferSize, + + /// + PerformanceParamMaxConcurrentClientStreams, + + /// + PerformanceParamMaxReceiveBufferSize, + + /// + PerformanceParamDecryptOnSspiThread, + + /// + PerformanceParamMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.cs new file mode 100644 index 0000000000..fb45aa883a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.cs @@ -0,0 +1,31 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_PROPERTY_FLAGS +{ + public uint _bitfield; + + /// + [NativeTypeName("ULONG : 1")] + public uint Present + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + readonly get + { + return _bitfield & 0x1u; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + _bitfield = (_bitfield & ~0x1u) | (value & 0x1u); + } + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.xml new file mode 100644 index 0000000000..3b2fe319d4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PROPERTY_FLAGS.xml @@ -0,0 +1,17 @@ + + + + + + + The HTTP_PROPERTY_FLAGS structure is used by the property configuration structures to enable or disable a property on a configuration object when setting property configurations. + When the configuration structure is used to query property configurations, this structure specifies whether the property is present on the configuration object. + + + + + The Present flag enables or disables a property, or determines whether the property is present on the configuration object. + A value of zero indicates the property is not present; a positive value indicates the property is present. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_INFO.cs new file mode 100644 index 0000000000..47844af38a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_INFO.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_PROTECTION_LEVEL_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + public HTTP_PROTECTION_LEVEL_TYPE Level; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_TYPE.cs new file mode 100644 index 0000000000..f60900407c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_PROTECTION_LEVEL_TYPE.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_PROTECTION_LEVEL_TYPE +{ + /// + HttpProtectionLevelUnrestricted, + + /// + HttpProtectionLevelEdgeRestricted, + + /// + HttpProtectionLevelRestricted, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.cs new file mode 100644 index 0000000000..51872460a0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_QOS_SETTING_INFO +{ + /// + public HTTP_QOS_SETTING_TYPE QosType; + + /// + [NativeTypeName("PVOID")] + public void* QosSetting; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.xml new file mode 100644 index 0000000000..33244856f9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_INFO.xml @@ -0,0 +1,14 @@ + + + + + + The HTTP_QOS_SETTING_INFO structurecontains information about a QOS setting. + + + An enumeration value that specifies the type of the QOS setting. + + + A pointer to a structure that contains the setting. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.cs new file mode 100644 index 0000000000..85518b8a5c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_QOS_SETTING_TYPE +{ + /// + HttpQosSettingTypeBandwidth, + + /// + HttpQosSettingTypeConnectionLimit, + + /// + HttpQosSettingTypeFlowRate, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.xml new file mode 100644 index 0000000000..cb16d6f1e6 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QOS_SETTING_TYPE.xml @@ -0,0 +1,21 @@ + + + + + + The HTTP_QOS_SETTING_TYPE enumeration identifies the type of a QOS setting contained in a structure. + + + The setting is a bandwidth limit represented by a structure. + + + The setting is a connection limit represented by a structure. + + + + A flow rate represented by . +
+ Note  Windows Server 2008 R2 and Windows 7 only.
+
+
+
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_QUIC.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_QUIC.cs new file mode 100644 index 0000000000..355e86203b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_QUIC.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUERY_REQUEST_QUALIFIER_QUIC +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong Freshness; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_TCP.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_TCP.cs new file mode 100644 index 0000000000..06abd6e304 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUERY_REQUEST_QUALIFIER_TCP.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUERY_REQUEST_QUALIFIER_TCP +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong Freshness; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_API_TIMINGS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_API_TIMINGS.cs new file mode 100644 index 0000000000..b76b585b5a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_API_TIMINGS.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUIC_API_TIMINGS +{ + /// + public HTTP_QUIC_CONNECTION_API_TIMINGS ConnectionTimings; + + /// + public HTTP_QUIC_STREAM_API_TIMINGS StreamTimings; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_CONNECTION_API_TIMINGS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_CONNECTION_API_TIMINGS.cs new file mode 100644 index 0000000000..6336e6a4e6 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_CONNECTION_API_TIMINGS.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUIC_CONNECTION_API_TIMINGS +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong OpenTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong CloseTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong StartTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ShutdownTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SecConfigCreateTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SecConfigDeleteTime; + + /// + [NativeTypeName("ULONGLONG")] + public ulong GetParamCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong GetParamSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetParamCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetParamSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetCallbackHandlerCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetCallbackHandlerSum; + + /// + public HTTP_QUIC_STREAM_API_TIMINGS ControlStreamTimings; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_API_TIMINGS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_API_TIMINGS.cs new file mode 100644 index 0000000000..8d7ffefe16 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_API_TIMINGS.cs @@ -0,0 +1,82 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUIC_STREAM_API_TIMINGS +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong OpenCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong OpenSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong CloseCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong CloseSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong StartCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong StartSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ShutdownCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ShutdownSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SendCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SendSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReceiveSetEnabledCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReceiveSetEnabledSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong GetParamCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong GetParamSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetParamCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetParamSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetCallbackHandlerCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SetCallbackHandlerSum; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_REQUEST_STATS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_REQUEST_STATS.cs new file mode 100644 index 0000000000..96c8559543 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_QUIC_STREAM_REQUEST_STATS.cs @@ -0,0 +1,42 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_QUIC_STREAM_REQUEST_STATS +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong StreamWaitStart; + + /// + [NativeTypeName("ULONGLONG")] + public ulong StreamWaitEnd; + + /// + [NativeTypeName("ULONGLONG")] + public ulong RequestHeadersCompressionStart; + + /// + [NativeTypeName("ULONGLONG")] + public ulong RequestHeadersCompressionEnd; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ResponseHeadersDecompressionStart; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ResponseHeadersDecompressionEnd; + + /// + [NativeTypeName("ULONGLONG")] + public ulong RequestHeadersCompressedSize; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ResponseHeadersCompressedSize; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.cs new file mode 100644 index 0000000000..a1e5662687 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.cs @@ -0,0 +1,58 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_AUTH_INFO +{ + /// + public HTTP_AUTH_STATUS AuthStatus; + + /// + [NativeTypeName("SECURITY_STATUS")] + public int SecStatus; + + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + public HTTP_REQUEST_AUTH_TYPE AuthType; + + /// + public HANDLE AccessToken; + + /// + [NativeTypeName("ULONG")] + public uint ContextAttributes; + + /// + [NativeTypeName("ULONG")] + public uint PackedContextLength; + + /// + [NativeTypeName("ULONG")] + public uint PackedContextType; + + /// + [NativeTypeName("PVOID")] + public void* PackedContext; + + /// + [NativeTypeName("ULONG")] + public uint MutualAuthDataLength; + + /// + [NativeTypeName("PCHAR")] + public sbyte* pMutualAuthData; + + /// + public ushort PackageNameLength; + + /// + [NativeTypeName("PWSTR")] + public char* pPackageName; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.xml new file mode 100644 index 0000000000..908d5915ae --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_INFO.xml @@ -0,0 +1,76 @@ + + + + + + + The HTTP_REQUEST_AUTH_INFO structure contains the authentication status of the request with a handle to the client token that the receiving process can use to impersonate the authenticated client. + This structure is contained in the structure. + + + + + A member of the enumeration that indicates the final authentication status of the request. + If the authentication status is not HttpAuthStatusSuccess, applications should disregard members of this structure except AuthStatus, SecStatus, and AuthType. + + + + A value that indicates the security failure status when the AuthStatus member is HttpAuthStatusFailure. + + + + The authentication flags that indicate the following authentication attributes: + + + Attribute + Meaning + + + + + + + HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED + + + + + The provided token is for NTLM and is based on a cached credential of a Keep Alive (KA) connection. + + + + + + A member of the enumeration that indicates the authentication scheme attempted or established for the request. + + + + A handle to the client token that the receiving process can use to impersonate the authenticated client. + The handle to the token should be closed by calling when it is no longer required. This token is valid only for the lifetime of the request. Applications can regenerate the initial 401 challenge to reauthenticate when the token expires. + + + + The client context attributes for the access token. + + + The length, in bytes, of the PackedContext. + + + The type of context in the PackedContext member. + + + + The security context for the authentication type. + Applications can query the attributes of the packed context by calling the SSPI API. However, applications must acquire a credential handle for the security package for the indicated AuthType. + Application should call the SSPI API to free the serialized context when it is no longer required. + + + + The length, in bytes, of the pMutualAuthData member. + + + The Base64 encoded mutual authentication data used in the WWW-Authenticate header. + + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.cs new file mode 100644 index 0000000000..4e5be9e01c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_REQUEST_AUTH_TYPE +{ + /// + HttpRequestAuthTypeNone = 0, + + /// + HttpRequestAuthTypeBasic, + + /// + HttpRequestAuthTypeDigest, + + /// + HttpRequestAuthTypeNTLM, + + /// + HttpRequestAuthTypeNegotiate, + + /// + HttpRequestAuthTypeKerberos, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.xml new file mode 100644 index 0000000000..ee8fd4aa54 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_AUTH_TYPE.xml @@ -0,0 +1,29 @@ + + + + + + + The HTTP_REQUEST_AUTH_TYPE enumeration defines the authentication types supported by the HTTP Server API. + This enumeration is used in the structure. + + + + No authentication is attempted for the request. + + + Basic authentication is attempted for the request. + + + Digest authentication is attempted for the request. + + + NTLM authentication is attempted for the request. + + + Negotiate authentication is attempted for the request. + + + Kerberos authentication is attempted for the request. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.cs new file mode 100644 index 0000000000..ec26792494 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.cs @@ -0,0 +1,26 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_CHANNEL_BIND_STATUS +{ + /// + [NativeTypeName("PHTTP_SERVICE_BINDING_BASE")] + public HTTP_SERVICE_BINDING_BASE* ServiceName; + + /// + [NativeTypeName("PUCHAR")] + public byte* ChannelToken; + + /// + [NativeTypeName("ULONG")] + public uint ChannelTokenSize; + + /// + [NativeTypeName("ULONG")] + public uint Flags; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.xml new file mode 100644 index 0000000000..07f4638106 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_CHANNEL_BIND_STATUS.xml @@ -0,0 +1,20 @@ + + + + + + The HTTP_REQUEST_CHANNEL_BIND_STATUS structure contains secure channel endpoint binding information. + + + A pointer to an structure cast to a pointer to an structure containing the service name from the client. This is populated if the request's Channel Binding Token (CBT) is not configured to retrieve service names. + + + A pointer to a buffer that contains the secure channel endpoint binding. + + + The length of the ChannelToken buffer in bytes. + + + Reserved + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.cs new file mode 100644 index 0000000000..a6ea150abd --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.cs @@ -0,0 +1,37 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_HEADERS +{ + /// + public ushort UnknownHeaderCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* pUnknownHeaders; + + /// + public ushort TrailerCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* pTrailers; + + /// + [NativeTypeName("HTTP_KNOWN_HEADER[41]")] + public _KnownHeaders_e__FixedBuffer KnownHeaders; + + /// + [InlineArray(41)] + public partial struct _KnownHeaders_e__FixedBuffer + { + public HTTP_KNOWN_HEADER e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.xml new file mode 100644 index 0000000000..0d294a3298 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_HEADERS.xml @@ -0,0 +1,23 @@ + + + + + + TheHTTP_REQUEST_HEADERS structure contains headers sent with an HTTP request. + + + A number of unknown headers sent with the HTTP request. This number is the size of the array pointed to by the pUnknownHeaders member. + + + A pointer to an array of structures. This array contains one structure for each of the unknown headers sent in the HTTP request. + + + This member is reserved and must be zero. + + + This member is reserved and must be NULL. + + + Fixed-size array of structures. The enumeration provides a mapping from header types to array indexes. If a known header of a given type is included in the HTTP request, the array element at the index that corresponds to that type specifies the header value. Those elements of the array for which no corresponding headers are present contain a zero-valued RawValueLength member. Use RawValueLength to determine the end of the header string pointed to by pRawValue, rather than relying on the string to have a terminating null. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.cs new file mode 100644 index 0000000000..6342fe4dd6 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_INFO +{ + /// + public HTTP_REQUEST_INFO_TYPE InfoType; + + /// + [NativeTypeName("ULONG")] + public uint InfoLength; + + /// + [NativeTypeName("PVOID")] + public void* pInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.xml new file mode 100644 index 0000000000..3dbecd863a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO.xml @@ -0,0 +1,17 @@ + + + + + + The HTTP_REQUEST_INFO structure extends the HTTP_REQUEST structure with additional information about the request. + + + A member of the enumeration specifying the type of information contained in this structure. + + + The length, in bytes, of the pInfo member. + + + A pointer to the structure when the InfoType member is HttpRequestInfoTypeAuth; otherwise NULL. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.cs new file mode 100644 index 0000000000..46a188fe66 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.cs @@ -0,0 +1,46 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_REQUEST_INFO_TYPE +{ + /// + HttpRequestInfoTypeAuth, + + /// + HttpRequestInfoTypeChannelBind, + + /// + HttpRequestInfoTypeSslProtocol, + + /// + HttpRequestInfoTypeSslTokenBindingDraft, + + /// + HttpRequestInfoTypeSslTokenBinding, + + /// + HttpRequestInfoTypeRequestTiming, + + /// + HttpRequestInfoTypeTcpInfoV0, + + /// + HttpRequestInfoTypeRequestSizing, + + /// + HttpRequestInfoTypeQuicStats, + + /// + HttpRequestInfoTypeTcpInfoV1, + + /// + HttpRequestInfoTypeQuicStatsV2, + + /// + HttpRequestInfoTypeTcpInfoV2, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.xml new file mode 100644 index 0000000000..53a4f8a594 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_INFO_TYPE.xml @@ -0,0 +1,21 @@ + + + + + + + The HTTP_REQUEST_INFO_TYPE enumeration defines the type of information contained in the structure. + This enumeration is used in the structure. + + + + + The request information type is authentication. + The pInfo member of the structure points to a structure. + + + + + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.cs new file mode 100644 index 0000000000..0620263662 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.cs @@ -0,0 +1,46 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_REQUEST_PROPERTY +{ + /// + HttpRequestPropertyIsb, + + /// + HttpRequestPropertyTcpInfoV0, + + /// + HttpRequestPropertyQuicStats, + + /// + HttpRequestPropertyTcpInfoV1, + + /// + HttpRequestPropertySni, + + /// + HttpRequestPropertyStreamError, + + /// + HttpRequestPropertyWskApiTimings, + + /// + HttpRequestPropertyQuicApiTimings, + + /// + HttpRequestPropertyQuicStatsV2, + + /// + HttpRequestPropertyQuicStreamStats, + + /// + HttpRequestPropertyTcpInfoV2, + + /// + HttpRequestPropertyTlsClientHello, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.xml new file mode 100644 index 0000000000..fc151cf517 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY.xml @@ -0,0 +1,14 @@ + + + + + + The HTTP_REQUEST_PROPERTY enumeration defines the properties that are configured by the HTTP Server API on a request. + + + + The HTTP/2 or HTTP/3 stream error on the request. + The structure contains the configuration data for this property. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_SNI.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_SNI.cs new file mode 100644 index 0000000000..71e41438f3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_SNI.cs @@ -0,0 +1,27 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_REQUEST_PROPERTY_SNI +{ + /// + [NativeTypeName("WCHAR[256]")] + public _Hostname_e__FixedBuffer Hostname; + + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + [InlineArray(256)] + public partial struct _Hostname_e__FixedBuffer + { + public char e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.cs new file mode 100644 index 0000000000..77dbe81b62 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_REQUEST_PROPERTY_STREAM_ERROR +{ + /// + [NativeTypeName("ULONG")] + public uint ErrorCode; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.xml new file mode 100644 index 0000000000..68673e0d77 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_PROPERTY_STREAM_ERROR.xml @@ -0,0 +1,11 @@ + + + + + + The HTTP_REQUEST_PROPERTY_STREAM_ERROR structure represents an HTTP/2 or HTTP/3 stream error code. + + + The protocol stream error code. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_INFO.cs new file mode 100644 index 0000000000..83718437f9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_INFO.cs @@ -0,0 +1,35 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_REQUEST_SIZING_INFO +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong Flags; + + /// + [NativeTypeName("ULONG")] + public uint RequestIndex; + + /// + [NativeTypeName("ULONG")] + public uint RequestSizingCount; + + /// + [NativeTypeName("ULONGLONG[5]")] + public _RequestSizing_e__FixedBuffer RequestSizing; + + /// + [InlineArray(5)] + public partial struct _RequestSizing_e__FixedBuffer + { + public ulong e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_TYPE.cs new file mode 100644 index 0000000000..6af4591bb2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_SIZING_TYPE.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_REQUEST_SIZING_TYPE +{ + /// + HttpRequestSizingTypeTlsHandshakeLeg1ClientData, + + /// + HttpRequestSizingTypeTlsHandshakeLeg1ServerData, + + /// + HttpRequestSizingTypeTlsHandshakeLeg2ClientData, + + /// + HttpRequestSizingTypeTlsHandshakeLeg2ServerData, + + /// + HttpRequestSizingTypeHeaders, + + /// + HttpRequestSizingTypeMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_INFO.cs new file mode 100644 index 0000000000..6e30d58f68 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_INFO.cs @@ -0,0 +1,27 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_REQUEST_TIMING_INFO +{ + /// + [NativeTypeName("ULONG")] + public uint RequestTimingCount; + + /// + [NativeTypeName("ULONGLONG[30]")] + public _RequestTiming_e__FixedBuffer RequestTiming; + + /// + [InlineArray(30)] + public partial struct _RequestTiming_e__FixedBuffer + { + public ulong e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_TYPE.cs new file mode 100644 index 0000000000..6be23312da --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TIMING_TYPE.cs @@ -0,0 +1,103 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_REQUEST_TIMING_TYPE +{ + /// + HttpRequestTimingTypeConnectionStart, + + /// + HttpRequestTimingTypeDataStart, + + /// + HttpRequestTimingTypeTlsCertificateLoadStart, + + /// + HttpRequestTimingTypeTlsCertificateLoadEnd, + + /// + HttpRequestTimingTypeTlsHandshakeLeg1Start, + + /// + HttpRequestTimingTypeTlsHandshakeLeg1End, + + /// + HttpRequestTimingTypeTlsHandshakeLeg2Start, + + /// + HttpRequestTimingTypeTlsHandshakeLeg2End, + + /// + HttpRequestTimingTypeTlsAttributesQueryStart, + + /// + HttpRequestTimingTypeTlsAttributesQueryEnd, + + /// + HttpRequestTimingTypeTlsClientCertQueryStart, + + /// + HttpRequestTimingTypeTlsClientCertQueryEnd, + + /// + HttpRequestTimingTypeHttp2StreamStart, + + /// + HttpRequestTimingTypeHttp2HeaderDecodeStart, + + /// + HttpRequestTimingTypeHttp2HeaderDecodeEnd, + + /// + HttpRequestTimingTypeRequestHeaderParseStart, + + /// + HttpRequestTimingTypeRequestHeaderParseEnd, + + /// + HttpRequestTimingTypeRequestRoutingStart, + + /// + HttpRequestTimingTypeRequestRoutingEnd, + + /// + HttpRequestTimingTypeRequestQueuedForInspection, + + /// + HttpRequestTimingTypeRequestDeliveredForInspection, + + /// + HttpRequestTimingTypeRequestReturnedAfterInspection, + + /// + HttpRequestTimingTypeRequestQueuedForDelegation, + + /// + HttpRequestTimingTypeRequestDeliveredForDelegation, + + /// + HttpRequestTimingTypeRequestReturnedAfterDelegation, + + /// + HttpRequestTimingTypeRequestQueuedForIO, + + /// + HttpRequestTimingTypeRequestDeliveredForIO, + + /// + HttpRequestTimingTypeHttp3StreamStart, + + /// + HttpRequestTimingTypeHttp3HeaderDecodeStart, + + /// + HttpRequestTimingTypeHttp3HeaderDecodeEnd, + + /// + HttpRequestTimingTypeMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TOKEN_BINDING_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TOKEN_BINDING_INFO.cs new file mode 100644 index 0000000000..a42fbfbdff --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_TOKEN_BINDING_INFO.cs @@ -0,0 +1,30 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_TOKEN_BINDING_INFO +{ + /// + [NativeTypeName("PUCHAR")] + public byte* TokenBinding; + + /// + [NativeTypeName("ULONG")] + public uint TokenBindingSize; + + /// + [NativeTypeName("PUCHAR")] + public byte* EKM; + + /// + [NativeTypeName("ULONG")] + public uint EKMSize; + + /// + [NativeTypeName("UCHAR")] + public byte KeyType; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.cs new file mode 100644 index 0000000000..528d42016c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_REQUEST_V1 +{ + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + [NativeTypeName("HTTP_CONNECTION_ID")] + public ulong ConnectionId; + + /// + [NativeTypeName("HTTP_REQUEST_ID")] + public ulong RequestId; + + /// + [NativeTypeName("HTTP_URL_CONTEXT")] + public ulong UrlContext; + + /// + public HTTP_VERSION Version; + + /// + public HTTP_VERB Verb; + + /// + public ushort UnknownVerbLength; + + /// + public ushort RawUrlLength; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pUnknownVerb; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pRawUrl; + + /// + public HTTP_COOKED_URL CookedUrl; + + /// + public HTTP_TRANSPORT_ADDRESS Address; + + /// + public HTTP_REQUEST_HEADERS Headers; + + /// + [NativeTypeName("ULONGLONG")] + public ulong BytesReceived; + + /// + public ushort EntityChunkCount; + + /// + [NativeTypeName("PHTTP_DATA_CHUNK")] + public HTTP_DATA_CHUNK* pEntityChunks; + + /// + [NativeTypeName("HTTP_RAW_CONNECTION_ID")] + public ulong RawConnectionId; + + /// + [NativeTypeName("PHTTP_SSL_INFO")] + public HTTP_SSL_INFO* pSslInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.xml new file mode 100644 index 0000000000..f6b9225911 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V1.xml @@ -0,0 +1,114 @@ + + + + + + + Uses theHTTP_REQUEST structure to return data associated with a specific request. + Do not use HTTP_REQUEST_V1 directly in your code; using HTTP_REQUEST instead ensures that the proper version, based on the operating system the code is compiled under, is used. + + + + + A combination of zero or more of the following flag values may be combined, with OR, as appropriate. + + + Value + Meaning + + + + + + + HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS + + + + + There is more entity body to be read for this request. This applies only to incoming requests that span multiple reads. If this value is not set, either the whole entity body was copied into the buffer specified by pEntityChunks or the request did not include an entity body. + + + + + + + HTTP_REQUEST_FLAG_IP_ROUTED + + + + + The request was routed based on host and IP binding. The application should reflect the local IP while flushing kernel cache entries for this request.Windows Server 2003 with SP1 and Windows XP with SP2:  This flag is not supported. + + + + + + + HTTP_REQUEST_FLAG_HTTP2 + + + + + Indicates the request was received over HTTP/2. + + + + + + An identifier for the connection on which the request was received. Use this value when calling or. + + + A value used to identify the request when calling,, and/or. + + + + The context that is associated with the URL in the pRawUrl parameter. + + Windows Server 2003 with SP1 and Windows XP with SP2:   + + + + + An structure that contains the version of HTTP specified by this request. + + + An HTTP verb associated with this request. This member can be one of the values from the
enumeration.
+
+ + If the Verb member contains a value equal to HttpVerbUnknown, the UnknownVerbLength member contains the size, in bytes, of the string pointed to by the pUnknownVerb member, not including the terminating null character. If Verb is not equal to HttpVerbUnknown, UnknownVerbLength is equal to zero. + + + The size, in bytes, of the unprocessed URL string pointed to by the pRawUrl member, not including the terminating null character. + + + If the Verb member is equal to HttpVerbUnknown, pUnknownVerb, points to a null-terminated string of octets that contains the HTTP verb for this request; otherwise, the application ignores this parameter. + + + A pointer to a string of octets that contains the original, unprocessed URL targeted by this request. Use this unprocessed URL only for tracking or statistical purposes; the CookedUrl member contains the canonical form of the URL for general use. + + + An structure that contains a parsed canonical wide-character version of the URL targeted by this request. This is the version of the URL HTTP Listeners should act upon, rather than the raw URL. + + + An structure that contains the transport addresses for the connection for this request. + + + An structure that contains the headers specified in this request. + + + The total number of bytes received from the network comprising this request. + + + The number of elements in the pEntityChunks array. If no entity body was copied, this value is zero. + + + A pointer to an array of structures that contains the data blocks making up the entity body. does not copy the entity body unless called with the HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY flag set. + + + Raw connection ID for an Secure Sockets Layer (SSL) request. + + + A pointer to an structure that contains Secure Sockets Layer (SSL) information about the connection on which the request was received. + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.cs b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.cs new file mode 100644 index 0000000000..8e00edb324 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct _HTTP_REQUEST_V2 : _HTTP_REQUEST_V1")] +[NativeInheritance("_HTTP_REQUEST_V1")] +public unsafe partial struct HTTP_REQUEST_V2 +{ + public HTTP_REQUEST_V1 Base; + + /// + public ushort RequestInfoCount; + + /// + [NativeTypeName("PHTTP_REQUEST_INFO")] + public HTTP_REQUEST_INFO* pRequestInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.xml b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.xml new file mode 100644 index 0000000000..5321c16f1d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_REQUEST_V2.xml @@ -0,0 +1,18 @@ + + + + + + + The HTTP_REQUEST_V2 structure extends the request structure with more information about the request. + Do not use HTTP_REQUEST_V2 directly in your code; use HTTP_REQUEST instead to ensure that the proper version, based on the operating system the code is compiled under, is used. + + + + The number of structures in the array pointed to by pRequestInfo. + + + A pointer to an array of structures that contains additional information about the request. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.cs new file mode 100644 index 0000000000..ba5ab3a00a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.cs @@ -0,0 +1,37 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_RESPONSE_HEADERS +{ + /// + public ushort UnknownHeaderCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* pUnknownHeaders; + + /// + public ushort TrailerCount; + + /// + [NativeTypeName("PHTTP_UNKNOWN_HEADER")] + public HTTP_UNKNOWN_HEADER* pTrailers; + + /// + [NativeTypeName("HTTP_KNOWN_HEADER[30]")] + public _KnownHeaders_e__FixedBuffer KnownHeaders; + + /// + [InlineArray(30)] + public partial struct _KnownHeaders_e__FixedBuffer + { + public HTTP_KNOWN_HEADER e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.xml new file mode 100644 index 0000000000..316032c29e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_HEADERS.xml @@ -0,0 +1,23 @@ + + + + + + TheHTTP_RESPONSE_HEADERS structure contains the headers sent with an HTTP response. + + + A number of unknown headers sent with the HTTP response and contained in the array pointed to by the pUnknownHeaders member. This number cannot exceed 9999. + + + A pointer to an array of structures that contains one structure for each of the unknown headers sent in the HTTP response. + + + This member is reserved and must be zero. + + + This member is reserved and must be NULL. + + + Fixed-size array of structures. The enumeration provides a mapping from header types to array indexes. If a known header of a given type is included in the HTTP response, the array element at the index that corresponds to that type specifies the header value. Those elements of the array for which no corresponding headers are present contain a zero-valued RawValueLength member. Use RawValueLength to determine the end of the header string pointed to by pRawValue, rather than relying on the string to have a terminating null. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.cs new file mode 100644 index 0000000000..41a8e1cbda --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_RESPONSE_INFO +{ + /// + public HTTP_RESPONSE_INFO_TYPE Type; + + /// + [NativeTypeName("ULONG")] + public uint Length; + + /// + [NativeTypeName("PVOID")] + public void* pInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.xml new file mode 100644 index 0000000000..ef913d4d4c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO.xml @@ -0,0 +1,17 @@ + + + + + + The HTTP_RESPONSE_INFO structure extends the HTTP_RESPONSE structure with additional information for the response. + + + A member of the enumeration specifying the type of information contained in this structure. + + + The length, in bytes, of the pInfo member. + + + A pointer to the structure when the InfoType member is HttpResponseInfoTypeMultipleKnownHeaders; otherwise NULL. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.cs new file mode 100644 index 0000000000..06f5074136 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_RESPONSE_INFO_TYPE +{ + /// + HttpResponseInfoTypeMultipleKnownHeaders, + + /// + HttpResponseInfoTypeAuthenticationProperty, + + /// + HttpResponseInfoTypeQoSProperty, + + /// + HttpResponseInfoTypeChannelBind, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.xml new file mode 100644 index 0000000000..afa07d706c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_INFO_TYPE.xml @@ -0,0 +1,26 @@ + + + + + + + The HTTP_RESPONSE_INFO_TYPE enumeration defines the type of information contained in the structure. + This enumeration is used in the structure. + + + + + The response information type is authentication. + The pInfo member of the structure points to a structure. + + + + Reserved for future use. + + + Pointer to an structure that contains information about a QOS setting. + + + Pointer to an structure that contains information on the channel binding token. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.cs b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.cs new file mode 100644 index 0000000000..fa0a04df27 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.cs @@ -0,0 +1,37 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_RESPONSE_V1 +{ + /// + [NativeTypeName("ULONG")] + public uint Flags; + + /// + public HTTP_VERSION Version; + + /// + public ushort StatusCode; + + /// + public ushort ReasonLength; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pReason; + + /// + public HTTP_RESPONSE_HEADERS Headers; + + /// + public ushort EntityChunkCount; + + /// + [NativeTypeName("PHTTP_DATA_CHUNK")] + public HTTP_DATA_CHUNK* pEntityChunks; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.xml b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.xml new file mode 100644 index 0000000000..bf5c72bfe0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V1.xml @@ -0,0 +1,38 @@ + + + + + + + TheHTTP_RESPONSE_V1 structure contains data associated with an HTTP response. + Do not use HTTP_RESPONSE_V1 directly in your code; use HTTP_RESPONSE instead to ensure that the proper version, based on the operating system the code is compiled under, is used. + + + + The optional logging flags change the default response behavior. These can be one of any of the HTTP_RESPONSE_FLAG values. + + + This member is ignored; the response is always an HTTP/1.1 response. + + + + Numeric status code that characterizes the result of the HTTP request (for example, 200 signifying "OK" or 404 signifying "Not Found"). For more information and a list of these codes, see Section 10 ofRFC 2616. + If a request is directed to a URL that is reserved but not registered, indicating that the appropriate application to handle it is not running, then the HTTP Server API itself returns a response with status code 400, signifying "Bad Request". This is transparent to the application. A code 400 is preferred here to 503 ("Server not available") because the latter is interpreted by some smart load balancers as an indication that the server is overloaded. + + + + Size, in bytes, of the string pointed to by the pReason member not including the terminating null. May be zero. + + + A pointer to a human-readable, null-terminated string of printable characters that characterizes the result of the HTTP request (for example, "OK" or "Not Found"). + + + An structure that contains the headers used in this response. + + + A number of entity-body data blocks specified in the pEntityChunks array. This number cannot exceed 100. If the response has no entity body, this member must be zero. + + + An array of structures that together specify all the data blocks that make up the entity body of the response. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.cs b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.cs new file mode 100644 index 0000000000..592f8ebf36 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct _HTTP_RESPONSE_V2 : _HTTP_RESPONSE_V1")] +[NativeInheritance("_HTTP_RESPONSE_V1")] +public unsafe partial struct HTTP_RESPONSE_V2 +{ + public HTTP_RESPONSE_V1 Base; + + /// + public ushort ResponseInfoCount; + + /// + [NativeTypeName("PHTTP_RESPONSE_INFO")] + public HTTP_RESPONSE_INFO* pResponseInfo; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.xml b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.xml new file mode 100644 index 0000000000..122e469d5f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_RESPONSE_V2.xml @@ -0,0 +1,21 @@ + + + + + + + The HTTP_RESPONSE_V2 structure extends the HTTP version 1.0 response structure with more information for the response. + Do not use HTTP_RESPONSE_V2 directly in your code; use HTTP_RESPONSE instead to ensure that the proper version, based on the operating system the code is compiled under, is used. + + + + + The number of structures in the array pointed to by pResponseInfo. + The count of the HTTP_RESPONSE_INFO elements in the array pointed to by pResponseInfo. + + + + A pointer to an array of structures containing more information about the request. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SCHEME.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SCHEME.cs new file mode 100644 index 0000000000..c6ae4e13b3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SCHEME.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SCHEME +{ + /// + HttpSchemeHttp, + + /// + HttpSchemeHttps, + + /// + HttpSchemeMaximum, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.cs new file mode 100644 index 0000000000..14b2647f56 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS +{ + /// + public ushort RealmLength; + + /// + [NativeTypeName("PWSTR")] + public char* Realm; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.xml new file mode 100644 index 0000000000..4fa6822927 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS.xml @@ -0,0 +1,20 @@ + + + + + + + The HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS structure contains the information for Basic authentication on a URL Group. + This structure is contained in the structure. + + + + The length, in bytes, of the Realm member. + + + + The realm used for Basic authentication. + The realm allows the server to be partitioned into a set of protection spaces, each with its own set of authentication schemes from the authentication database. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.cs new file mode 100644 index 0000000000..eb07f84e45 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.cs @@ -0,0 +1,24 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS +{ + /// + public ushort DomainNameLength; + + /// + [NativeTypeName("PWSTR")] + public char* DomainName; + + /// + public ushort RealmLength; + + /// + [NativeTypeName("PWSTR")] + public char* Realm; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.xml new file mode 100644 index 0000000000..c0c1142fc0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS.xml @@ -0,0 +1,29 @@ + + + + + + + The HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS structure contains the information for digest authentication on a URL Group. + This structure is contained in the structure. + + + + The length, in bytes, of the DomainName member. + + + + The domain name used for Digest authentication. + If NULL, the client assumes the protection space consists of all the URIs under the responding server. + + + + The length, in bytes, of the Realm member. + + + + The realm used for Digest authentication. + The realm allows the server to be partitioned into a set of protection spaces, each with its own set of authentication schemes from the authentication database. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.cs new file mode 100644 index 0000000000..becd477b92 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.cs @@ -0,0 +1,39 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVER_AUTHENTICATION_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + [NativeTypeName("ULONG")] + public uint AuthSchemes; + + /// + [NativeTypeName("BOOLEAN")] + public byte ReceiveMutualAuth; + + /// + [NativeTypeName("BOOLEAN")] + public byte ReceiveContextHandle; + + /// + [NativeTypeName("BOOLEAN")] + public byte DisableNTLMCredentialCaching; + + /// + [NativeTypeName("UCHAR")] + public byte ExFlags; + + /// + public HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS DigestParams; + + /// + public HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS BasicParams; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.xml new file mode 100644 index 0000000000..5a7799d3a4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_AUTHENTICATION_INFO.xml @@ -0,0 +1,153 @@ + + + + + + + The HTTP_SERVER_AUTHENTICATION_INFO structure is used to enable server-side authentication on a URL group or server session. This structure is also used to query the existing authentication schemes enabled for a URL group or server session. + This structure must be used when setting or querying the on a URL group, or server session. + + + + The structure that specifies if the property is present. + + + + The supported authentication schemes. This can be one or more of the following: + + + Authentication Scheme + Meaning + + + + + + + HTTP_AUTH_ENABLE_BASIC + + + + + Basic authentication is enabled. + + + + + + + HTTP_AUTH_ENABLE_DIGEST + + + + + Digest authentication is enabled. + + + + + + + HTTP_AUTH_ENABLE_NTLM + + + + + NTLM authentication is enabled. + + + + + + + HTTP_AUTH_ENABLE_NEGOTIATE + + + + + Negotiate authentication is enabled. + + + + + + + HTTP_AUTH_ENABLE_KERBEROS + + + + + Kerberos authentication is enabled. + + + + + + + HTTP_AUTH_ENABLE_ALL + + + + + All types of authentication are enabled. + + + + + + + A Boolean value that indicates, if True, that the client application receives the server credentials for mutual authentication with the authenticated request. If False, the client application does not receive the credentials. + Be aware that this option is set for all requests served by the associated request queue. + + + + A Boolean value that indicates, if True, that the finalized client context is serialized and passed to the application with the request. If False, the application does not receive the context. This handle can be used to query context attributes. + + + + A Boolean value that indicates, if True, that the NTLM credentials are not cached. If False, the default behavior is preserved. + By default, HTTP caches the client context for Keep Alive (KA) connections for the NTLM scheme if the request did not originate from a proxy. + + + + + Optional authentication flags. Can be one or more of the following possible values: + + + Value + Meaning + + + + + + + HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING + + + + + If set, the Kerberos authentication credentials are cached. Kerberos or Negotiate authentication must be enabled by AuthSchemes. + + + + + + + HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL + + + + + If set, the HTTP Server API captures the caller's credentials and uses them for Kerberos or Negotiate authentication. Kerberos or Negotiate authentication must be enabled by AuthSchemes. + + + + + + The structure that provides the domain and realm for the digest challenge. + + + The structure that provides the realm for the basic challenge. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.cs new file mode 100644 index 0000000000..20801b3c0b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.cs @@ -0,0 +1,52 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVER_PROPERTY +{ + /// + HttpServerAuthenticationProperty = 0, + + /// + HttpServerLoggingProperty = 1, + + /// + HttpServerQosProperty = 2, + + /// + HttpServerTimeoutsProperty = 3, + + /// + HttpServerQueueLengthProperty = 4, + + /// + HttpServerStateProperty = 5, + + /// + HttpServer503VerbosityProperty = 6, + + /// + HttpServerBindingProperty = 7, + + /// + HttpServerExtendedAuthenticationProperty = 8, + + /// + HttpServerListenEndpointProperty = 9, + + /// + HttpServerChannelBindProperty = 10, + + /// + HttpServerProtectionLevelProperty = 11, + + /// + HttpServerDelegationProperty = 16, + + /// + HttpServerFastForwardingProperty = 18, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.xml new file mode 100644 index 0000000000..6c0397abaa --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVER_PROPERTY.xml @@ -0,0 +1,69 @@ + + + + + + The HTTP_SERVER_PROPERTY enumeration defines the properties that are configured by the HTTP Server API on a URL group, server session, or request queue. + + + + The authentication property enables server-side authentication for a URL group, or server session using the Basic, NTLM, Negotiate, and Digest authentication schemes. + The structure contains the configuration data for this property. + + + + + The logging property enables logging for a server session or URL group. + The structure contains the configuration data for this property. + + + + + The QOS property enables settings affecting quality of service, such as limiting the maximum number of outstanding connections served for a URL group at any given time or limiting the response send bandwidth for a server session or URL group. + The structure contains the configuration data for this property. + + + + + The timeouts property configures timeouts for a server session or URL group. + The structure contains the configuration data for this property. + + + + The connections property limits the number of requests in the request queue. This is a ULONG. + + + + The connections property configures the state of a URL group, server session, or request queue. + The structure contains the configuration data for this property for the URL group or server session. The request queue uses the enumeration to configure this property. + + + + + The 503 verbosity property configures the verbosity level of 503 responses generated by the HTTP Server API for a request queue. + The enumeration contains the configuration data for this property. + + + + + The binding property associates a URL group with a request queue. + The structure contains the configuration data for this property. + + + + + The extended authentication property enables server-side authentication for a URL group, or server session using the Kerberos authentication scheme. + The structure contains the configuration data for this property. + + + + Listening endpoint property. + + + + This property implements authorization channel binding. + The structure contains the authorization details. + + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.cs new file mode 100644 index 0000000000..680d84f866 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_BINDING_A +{ + /// + public HTTP_SERVICE_BINDING_BASE Base; + + /// + [NativeTypeName("PCHAR")] + public sbyte* Buffer; + + /// + [NativeTypeName("ULONG")] + public uint BufferSize; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.xml new file mode 100644 index 0000000000..99b074c3e6 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_A.xml @@ -0,0 +1,17 @@ + + + + + + The HTTP_SERVICE_BINDING_A structure provides Service Principle Name (SPN) in ASCII. + + + An value, the Type member of which must be set to HttpServiceBindingTypeA. + + + A pointer to a buffer that represents the SPN. + + + The length, in bytes, of the string in Buffer. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_BASE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_BASE.cs new file mode 100644 index 0000000000..bfc2f21486 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_BASE.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_BINDING_BASE +{ + /// + public HTTP_SERVICE_BINDING_TYPE Type; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.cs new file mode 100644 index 0000000000..a8711ba48d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_BINDING_TYPE +{ + /// + HttpServiceBindingTypeNone = 0, + + /// + HttpServiceBindingTypeW, + + /// + HttpServiceBindingTypeA, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.xml new file mode 100644 index 0000000000..f4eb9be70b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_TYPE.xml @@ -0,0 +1,17 @@ + + + + + + The HTTP_SERVICE_BINDING_TYPE enumerated type specifies the string type for service names. + + + No type. + + + Unicode. + + + ASCII + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.cs new file mode 100644 index 0000000000..774ea7e7d0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_BINDING_W +{ + /// + public HTTP_SERVICE_BINDING_BASE Base; + + /// + [NativeTypeName("PWCHAR")] + public char* Buffer; + + /// + [NativeTypeName("ULONG")] + public uint BufferSize; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.xml new file mode 100644 index 0000000000..e935ff74e7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_BINDING_W.xml @@ -0,0 +1,17 @@ + + + + + + The HTTP_SERVICE_BINDING_W structure provides Service Principle Name (SPN) in Unicode. + + + An value, the Type member of which must be set to HttpServiceBindingTypeW. + + + A pointer to a buffer that represents the SPN. + + + The length, in bytes, of the string in Buffer. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.cs new file mode 100644 index 0000000000..a257d609b7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_CONFIG_CACHE_KEY +{ + /// + MaxCacheResponseSize = 0, + + /// + CacheRangeChunkSize, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.xml new file mode 100644 index 0000000000..fa4797d11a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_KEY.xml @@ -0,0 +1,14 @@ + + + + + + Used in the and functions. + + + The maximum cache size for the response. + + + The chunk size. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.cs new file mode 100644 index 0000000000..9f86bc68ba --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_CACHE_SET +{ + /// + public HTTP_SERVICE_CONFIG_CACHE_KEY KeyDesc; + + /// + [NativeTypeName("HTTP_SERVICE_CONFIG_CACHE_PARAM")] + public uint ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.xml new file mode 100644 index 0000000000..16a2476298 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_CACHE_SET.xml @@ -0,0 +1,14 @@ + + + + + + Used in the pConfigInformation parameter of the function. + + + Cache key. + + + Configuration cache parameter. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.cs new file mode 100644 index 0000000000..8492c04283 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.cs @@ -0,0 +1,52 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_CONFIG_ID +{ + /// + HttpServiceConfigIPListenList, + + /// + HttpServiceConfigSSLCertInfo, + + /// + HttpServiceConfigUrlAclInfo, + + /// + HttpServiceConfigTimeout, + + /// + HttpServiceConfigCache, + + /// + HttpServiceConfigSslSniCertInfo, + + /// + HttpServiceConfigSslCcsCertInfo, + + /// + HttpServiceConfigSetting, + + /// + HttpServiceConfigSslCertInfoEx, + + /// + HttpServiceConfigSslSniCertInfoEx, + + /// + HttpServiceConfigSslCcsCertInfoEx, + + /// + HttpServiceConfigSslScopedCcsCertInfo, + + /// + HttpServiceConfigSslScopedCcsCertInfoEx, + + /// + HttpServiceConfigMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.xml new file mode 100644 index 0000000000..0cb2a88346 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_ID.xml @@ -0,0 +1,53 @@ + + + + + + TheHTTP_SERVICE_CONFIG_ID enumeration type defines service configuration options. + + + Specifies the IP Listen List used to register IP addresses on which to listen for SSL connections. + + + + Specifies the SSL certificate store. +
+ Note  If SSL is enabled in the HTTP Server API, TLS 1.0 may be used in place of SSL when the client application specifies TLS.
+
+
+ + Specifies the URL reservation store. + + + + Configures the HTTP Server API wide connection timeouts. +
+ Note  Windows Vista and later versions of Windows
+
+
+ + + Used in the and functions. +
+ Note  Windows Server 2008 R2 and Windows 7 and later versions of Windows.
+
+
+ + + Specifies the SSL endpoint configuration with Hostname:Port as key. Used in the , , , and functions +
+ Note  Windows 8 and later versions of Windows.
+
+
+ + + Specifies that an operation should be performed for the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. Used in the , , , and functions +
+ Note  Windows 8 and later versions of Windows.
+
+
+ + + Terminates the enumeration; is not used to define a service configuration option. + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.cs new file mode 100644 index 0000000000..774610638b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM +{ + /// + public ushort AddrLength; + + /// + [NativeTypeName("PSOCKADDR")] + public SOCKADDR* pAddress; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.xml new file mode 100644 index 0000000000..2fb33aa8c3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM.xml @@ -0,0 +1,18 @@ + + + + + + TheHTTP_SERVICE_CONFIG_IP_LISTEN_PARAM structure is used to specify an IP address to be added to or deleted from the list of IP addresses to which the HTTP service binds. + + + The size, in bytes, of the address pointed to by pAddress. + + + + A pointer to an Internet Protocol (IP) address to be added to or deleted from the listen list. + To specify an IPv6 address, use a SOCKADDR_IN6 structure, declared in the Ws2tcpip.h header file, and cast its address to a PSOCKADDR when you use it to set the pAddress member. The sin_family member of the SOCKADDR_IN6 should be set to AF_INET6. + If the sin_addr field in SOCKADDR_IN6 structure is set to 0.0.0.0, it means to bind to all IPv4 addresses. If the sin6_addr field in SOCKADDR_IN6 is set to [.], it means to bind to all IPv6 addresses. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.cs new file mode 100644 index 0000000000..6f96c3cf5d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.cs @@ -0,0 +1,43 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY +{ + /// + [NativeTypeName("ULONG")] + public uint AddrCount; + + /// + [NativeTypeName("SOCKADDR_STORAGE[1]")] + public _AddrList_e__FixedBuffer AddrList; + + /// + public partial struct _AddrList_e__FixedBuffer + { + public SOCKADDR_STORAGE e0; + + [UnscopedRef] + public ref SOCKADDR_STORAGE this[int index] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Unsafe.Add(ref e0, index); + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [UnscopedRef] + public Span AsSpan(int length) => MemoryMarshal.CreateSpan(ref e0, length); + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.xml new file mode 100644 index 0000000000..b2e551f946 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_IP_LISTEN_QUERY structure is used by to return a list of the Internet Protocol (IP) addresses to which the HTTP service binds. + + + The number of address structures in the AddrList array. + + + An array ofSOCKADDR_STORAGE structures that contains IP addresses in either IPv4 or IPv6 form. To determine what form an address in the list has, cast it to a SOCKADDR and examine the sa_family element. If sa_family is equal to AF_INET, the address is in IPv4 form, or if it is equal to AF_INET6, the address is in IPv6 form. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.cs new file mode 100644 index 0000000000..9d5992efce --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_CONFIG_QUERY_TYPE +{ + /// + HttpServiceConfigQueryExact, + + /// + HttpServiceConfigQueryNext, + + /// + HttpServiceConfigQueryMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.xml new file mode 100644 index 0000000000..a35fa50ab7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_QUERY_TYPE.xml @@ -0,0 +1,17 @@ + + + + + + TheHTTP_SERVICE_CONFIG_QUERY_TYPE enumeration type defines various types of queries to make. It is used in the, , and structures. + + + The query returns a single record that matches the specified key value. + + + The query iterates through the store and returns all records in sequence, using an index value that the calling process increments between query calls. + + + Terminates the enumeration; is not used to define a query type. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_KEY.cs new file mode 100644 index 0000000000..51c6a064dc --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_KEY.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_CONFIG_SETTING_KEY +{ + /// + HttpNone = 0, + + /// + HttpTlsThrottle, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_SET.cs new file mode 100644 index 0000000000..e256c1485f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SETTING_SET.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SETTING_SET +{ + /// + public HTTP_SERVICE_CONFIG_SETTING_KEY KeyDesc; + + /// + [NativeTypeName("HTTP_SERVICE_CONFIG_SETTING_PARAM")] + public uint ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.cs new file mode 100644 index 0000000000..54944c7761 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_CCS_KEY +{ + /// + public SOCKADDR_STORAGE LocalAddress; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.xml new file mode 100644 index 0000000000..a058d9b8d8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_KEY.xml @@ -0,0 +1,11 @@ + + + + + + Serves as the key by which identifies the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. + + + A SOCKADDR_STORAGE structure that contains the Internet Protocol version 4 (IPv4) address with which this SSL certificate record is associated. It must be set to the IPv4 wildcard address of type with the sin_family member set to AF_INET and the sin_addr member filled with zeros (0.0.0.0). The sin_port member can be any valid port. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.cs new file mode 100644 index 0000000000..a2e7beac18 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_CCS_QUERY +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.xml new file mode 100644 index 0000000000..e3a948e2a4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY.xml @@ -0,0 +1,49 @@ + + + + + + Specifies a Secure Sockets Layer (SSL) configuration to query for an SSL Centralized Certificate Store (CCS) record on the port when you call the function. The SSL certificate record specifies that Http.sys should consult the CCS store to find certificates if the port receives a Transport Layer Security (TLS) handshake. + + + + One of the following values from the enumeration that indicates whether the call to is a call to retrieve a single record or part of a sequence of calls to retrieve a sequence of records. + + + Value + Meaning + + + + + + + HttpServiceConfigQueryExact + + + + + The call to is call to retrieve a single SSL CCS certificate record, which the KeyDesc member specifies. + + + + + + + HttpServiceConfigQueryNext + + + + + The call to is part of a sequence of calls to retrieve a sequence of SSL CCS certificate records. The value of the dwToken member controls which record in the sequence that this call to HttpQueryServiceConfiguration retrieves. + + + + + + An structure that identifies the SSL CCS certificate record queried, if the QueryDesc member is equal to HttpServiceConfigQueryExact. Ignored if QueryDesc is equal to HTTPServiceConfigQueryNext. + + + The position of the record in the sequence of records that this call to should retrieve if the QueryDesc method equals HTTPServiceConfigQueryNext, starting from zero. In other words, dwToken must be equal to zero on the first call to the HttpQueryServiceConfiguration function, one on the second call, two on the third call, and so forth. When the sequence of calls has returned all SSL certificate records, HttpQueryServiceConfiguration returns ERROR_NO_MORE_ITEMS. Ignored if the QueryDesc is equal to HttpServiceConfigQueryExact. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX.cs new file mode 100644 index 0000000000..6a61c2e481 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX.cs @@ -0,0 +1,23 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; + + /// + public HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE ParamType; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.cs new file mode 100644 index 0000000000..12c2dff26c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_CCS_SET +{ + /// + public HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.xml new file mode 100644 index 0000000000..2afa8f8c86 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET.xml @@ -0,0 +1,14 @@ + + + + + + Represents the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. Use this structure to add, delete, retrieve, or update that SSL certificate. + + + An structure that identifies the SSL CCS certificate record. + + + An structure that holds the contents of the specified SSL CCS certificate record. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX.cs new file mode 100644 index 0000000000..8c83aa88fe --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX +{ + /// + public HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM_EX ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.cs new file mode 100644 index 0000000000..1c7971463b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_SSL_KEY +{ + /// + [NativeTypeName("PSOCKADDR")] + public SOCKADDR* pIpPort; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.xml new file mode 100644 index 0000000000..1697abb925 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_KEY structure serves as the key by which a given Secure Sockets Layer (SSL) certificate record is identified. It appears in the and the structures, and is passed as the pConfigInformation parameter to,, and when the ConfigId parameter is set to HttpServiceConfigSSLCertInfo. + + + + Pointer to a sockaddr structure that contains the Internet Protocol (IP) address with which this SSL certificate is associated. + If the sin_addr field in IpPort is set to 0.0.0.0, the certificate is applicable to all IPv4 and IPv6 addresses. If the sin6_addr field in IpPort is set to [.], the certificate is applicable to all IPv6 addresses. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY_EX.cs new file mode 100644 index 0000000000..eea70a3203 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_KEY_EX.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_KEY_EX +{ + /// + public SOCKADDR_STORAGE IpPort; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.cs new file mode 100644 index 0000000000..6a43f79862 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_SSL_PARAM +{ + /// + [NativeTypeName("ULONG")] + public uint SslHashLength; + + /// + [NativeTypeName("PVOID")] + public void* pSslHash; + + /// + public Guid AppId; + + /// + [NativeTypeName("PWSTR")] + public char* pSslCertStoreName; + + /// + [NativeTypeName("DWORD")] + public uint DefaultCertCheckMode; + + /// + [NativeTypeName("DWORD")] + public uint DefaultRevocationFreshnessTime; + + /// + [NativeTypeName("DWORD")] + public uint DefaultRevocationUrlRetrievalTimeout; + + /// + [NativeTypeName("PWSTR")] + public char* pDefaultSslCtlIdentifier; + + /// + [NativeTypeName("PWSTR")] + public char* pDefaultSslCtlStoreName; + + /// + [NativeTypeName("DWORD")] + public uint DefaultFlags; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.xml new file mode 100644 index 0000000000..326777726f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM.xml @@ -0,0 +1,150 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_PARAM structure defines a record in the SSL configuration store. + + + The size, in bytes, of the SSL hash. + + + A pointer to the SSL certificate hash. + + + A unique identifier of the application setting this record. + + + A pointer to a wide-character string that contains the name of the store from which the server certificate is to be read. If set to NULL, "MY" is assumed as the default name. The specified certificate store name must be present in the Local System store location. + + + + Determines how client certificates are checked. This member can be one of the following values. + + + Value + Meaning + + + + + + + 0 + + + + + Enables the client certificate revocation check. + + + + + + + 1 + + + + + Client certificate is not to be verified for revocation. + + + + + + + 2 + + + + + Only cached certificate revocation is to be used. + + + + + + + 4 + + + + + The DefaultRevocationFreshnessTime setting is enabled. + + + + + + + 0x10000 + + + + + No usage check is to be performed. + + + + + + The number of seconds after which to check for an updated certificate revocation list (CRL). If this value is zero, the new CRL is updated only when the previous one expires. + + + The timeout interval, in milliseconds, for an attempt to retrieve a certificate revocation list from the remote URL. + + + A pointer to an SSL control identifier, which enables an application to restrict the group of certificate issuers to be trusted. This group must be a subset of the certificate issuers trusted by the machine on which the application is running. + + + The name of the store where the control identifier pointed to by pDefaultSslCtlIdentifier is stored. + + + + A combination of zero or more of the following flag values can be combined with OR as appropriate. + + + Flags + Meaning + + + + + + + HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT + + + + + Enables a client certificate to be cached locally for subsequent use. + + + + + + + HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER + + + + + Prevents SSL requests from being passed to low-level ISAPI filters. + + + + + + + HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER + + + + + Client certificates are mapped where possible to corresponding operating-system user accounts based on the certificate mapping rules stored in Active Directory. If this flag is set and the mapping is successful, the Token member of the structure is a handle to anaccess token. Release this token explicitly by closing the handle when theHTTP_SSL_CLIENT_CERT_INFO structure is no longer required. + + + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM_EX.cs new file mode 100644 index 0000000000..bcef87d312 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_PARAM_EX.cs @@ -0,0 +1,135 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_PARAM_EX +{ + /// + public HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE ParamType; + + /// + [NativeTypeName("ULONGLONG")] + public ulong Flags; + + /// + [NativeTypeName("__AnonymousRecord_http_L2474_C5")] + public _Anonymous_e__Union Anonymous; + + /// + [UnscopedRef] + public ref HTTP2_WINDOW_SIZE_PARAM Http2WindowSizeParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.Http2WindowSizeParam; + } + } + + /// + [UnscopedRef] + public ref HTTP2_SETTINGS_LIMITS_PARAM Http2SettingsLimitsParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.Http2SettingsLimitsParam; + } + } + + /// + [UnscopedRef] + public ref HTTP_PERFORMANCE_PARAM HttpPerformanceParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.HttpPerformanceParam; + } + } + + /// + [UnscopedRef] + public ref HTTP_TLS_RESTRICTIONS_PARAM HttpTlsRestrictionsParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.HttpTlsRestrictionsParam; + } + } + + /// + [UnscopedRef] + public ref HTTP_ERROR_HEADERS_PARAM HttpErrorHeadersParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.HttpErrorHeadersParam; + } + } + + /// + [UnscopedRef] + public ref HTTP_TLS_SESSION_TICKET_KEYS_PARAM HttpTlsSessionTicketKeysParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.HttpTlsSessionTicketKeysParam; + } + } + + /// + [UnscopedRef] + public ref HTTP_CERT_CONFIG_PARAM HttpCertConfigParam + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return ref Anonymous.HttpCertConfigParam; + } + } + + /// + [StructLayout(LayoutKind.Explicit)] + public partial struct _Anonymous_e__Union + { + /// + [FieldOffset(0)] + public HTTP2_WINDOW_SIZE_PARAM Http2WindowSizeParam; + + /// + [FieldOffset(0)] + public HTTP2_SETTINGS_LIMITS_PARAM Http2SettingsLimitsParam; + + /// + [FieldOffset(0)] + public HTTP_PERFORMANCE_PARAM HttpPerformanceParam; + + /// + [FieldOffset(0)] + public HTTP_TLS_RESTRICTIONS_PARAM HttpTlsRestrictionsParam; + + /// + [FieldOffset(0)] + public HTTP_ERROR_HEADERS_PARAM HttpErrorHeadersParam; + + /// + [FieldOffset(0)] + public HTTP_TLS_SESSION_TICKET_KEYS_PARAM HttpTlsSessionTicketKeysParam; + + /// + [FieldOffset(0)] + public HTTP_CERT_CONFIG_PARAM HttpCertConfigParam; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.cs new file mode 100644 index 0000000000..cfc745c806 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_QUERY +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.xml new file mode 100644 index 0000000000..6894e2696f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY.xml @@ -0,0 +1,26 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_QUERY structure is used to specify a particular record to query in the SSL configuration store. It is passed to the function using the pInputConfigInfo parameter when the ConfigId parameter is set to HttpServiceConfigSSLCertInfo. + + + + One of the following values from the enumeration. +

HttpServiceConfigQueryExact

+ Returns a single SSL record. +

HttpServiceConfigQueryNext

+ Returns a sequence of SSL records in a sequence of calls, as controlled by the dwToken parameter. +
+
+ + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then KeyDesc should contain an structure that identifies the SSL certificate record queried. If the QueryDesc parameter is equal to HTTPServiceConfigQueryNext, then KeyDesc is ignored. + + + + If the QueryDesc parameter is equal to HTTPServiceConfigQueryNext, then dwToken must be equal to zero on the first call to the function, one on the second call, two on the third call, and so forth until all SSL certificate records are returned, at which pointHttpQueryServiceConfiguration returns ERROR_NO_MORE_ITEMS. + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then dwToken is ignored. + + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY_EX.cs new file mode 100644 index 0000000000..1e62779c72 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_QUERY_EX.cs @@ -0,0 +1,23 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_QUERY_EX +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_KEY_EX KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; + + /// + public HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE ParamType; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.cs new file mode 100644 index 0000000000..4e5ca20de2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SET +{ + /// + public HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.xml new file mode 100644 index 0000000000..edd67da1cb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_SET structure is used to add a new record to the SSL store or retrieve an existing record from it. An instance of the structure is used to pass data in to the function through the pConfigInformation parameter or to retrieve data from the function through the pOutputConfigInformation parameter when the ConfigId parameter of either function is equal to HTTPServiceConfigSSLCertInfo. + + + An structure that identifies the SSL certificate record. + + + An structure that holds the contents of the specified SSL certificate record. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET_EX.cs new file mode 100644 index 0000000000..59ad961a36 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SET_EX.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SET_EX +{ + /// + public HTTP_SERVICE_CONFIG_SSL_KEY_EX KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM_EX ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.cs new file mode 100644 index 0000000000..bfb59921ed --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_SSL_SNI_KEY +{ + /// + public SOCKADDR_STORAGE IpPort; + + /// + [NativeTypeName("PWSTR")] + public char* Host; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.xml new file mode 100644 index 0000000000..bf16b4b6c4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_KEY.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_SNI_KEY structure serves as the key by which a given Secure Sockets Layer (SSL) Server Name Indication (SNI) certificate record is identified in the SSL SNI store. It appears in the and the structures, and is passed as the pConfigInformation parameter to,, and when the ConfigId parameter is set to HttpServiceConfigSslSniCertInfo. + + + A SOCKADDR_STORAGE structure that contains the Internet Protocol version 4 (IPv4) address with which this SSL SNI certificate is associated. It must be set to the IPv4 wildcard address of type SOCKADDR_IN with ss_family set to AF_INET and sin_addr filled with zeros. Port can be any valid port. + + + A pointer to a null-terminated Unicode UTF-16 string that represents the hostname. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.cs new file mode 100644 index 0000000000..a0977fa29f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SNI_QUERY +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.xml new file mode 100644 index 0000000000..c91b6d02e1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY.xml @@ -0,0 +1,52 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_SNI_QUERY structure is used to specify a particular Secure Sockets Layer (SSL) Server Name Indication (SNI) certificate record to query in the SSL SNI store. It is passed to the function using the pInputConfigInfo parameter when the ConfigId parameter is set to HttpServiceConfigSslSniCertInfo. + + + + One of the following values from the enumeration. + + + Value + Meaning + + + + + + + HttpServiceConfigQueryExact + + + + + Returns a single SSL SNI certificate record. + + + + + + + HttpServiceConfigQueryNext + + + + + Returns a sequence of SSL SNI certificate records in a sequence of calls, as controlled by dwToken. + + + + + + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then KeyDesc should contain an structure that identifies the SSL SNI certificate record queried. If the QueryDesc parameter is equal to HTTPServiceConfigQueryNext, then KeyDesc is ignored. + + + + If the QueryDesc parameter is equal to HTTPServiceConfigQueryNext, then dwToken must be equal to zero on the first call to the function, one on the second call, two on the third call, and so forth until all SSL certificate records are returned, at which pointHttpQueryServiceConfiguration returns ERROR_NO_MORE_ITEMS. + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then dwToken is ignored. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX.cs new file mode 100644 index 0000000000..fe7239b5f5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX.cs @@ -0,0 +1,23 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; + + /// + public HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE ParamType; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.cs new file mode 100644 index 0000000000..c2534594e1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SNI_SET +{ + /// + public HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.xml new file mode 100644 index 0000000000..8ab7006cd2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_SSL_SNI_SET structure is used to add a new Secure Sockets Layer (SSL) Server Name Indication (SNI) certificate record to the SSL SNI store or retrieve an existing record from it. It is passed to the function through the pConfigInformation parameter or to retrieve data from the function through the pOutputConfigInformation parameter when the ConfigId parameter of either function is set to HttpServiceConfigSslSniCertInfo. + + + An structure that identifies the SSL SNI certificate record. + + + An structure that holds the contents of the specified SSL SNI certificate record. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX.cs new file mode 100644 index 0000000000..59b959525e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX +{ + /// + public HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_SSL_PARAM_EX ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.cs new file mode 100644 index 0000000000..f1ca5df7d1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVICE_CONFIG_TIMEOUT_KEY +{ + /// + IdleConnectionTimeout = 0, + + /// + HeaderWaitTimeout, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.xml new file mode 100644 index 0000000000..53bd3ebac1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_KEY.xml @@ -0,0 +1,14 @@ + + + + + + The HTTP_SERVICE_CONFIG_TIMEOUT_KEY enumeration defines the type of timer that is queried or configured through the structure. + + + The maximum time allowed for a connection to remain idle, after which, the connection is timed out and reset. + + + The maximum time allowed to parse all the request headers, including the request line, after which, the connection is timed out and reset. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.cs new file mode 100644 index 0000000000..11e1e96d9f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_TIMEOUT_SET +{ + /// + public HTTP_SERVICE_CONFIG_TIMEOUT_KEY KeyDesc; + + /// + [NativeTypeName("HTTP_SERVICE_CONFIG_TIMEOUT_PARAM")] + public ushort ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.xml new file mode 100644 index 0000000000..8dd7a0249b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_TIMEOUT_SET.xml @@ -0,0 +1,14 @@ + + + + + + The HTTP_SERVICE_CONFIG_TIMEOUT_SET structure is used to set the HTTP Server API wide timeout value. + + + A member of the enumeration identifying the timer that is set. + + + The value, in seconds, for the timer. The value must be greater than zero. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.cs new file mode 100644 index 0000000000..6d471cb44a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_URLACL_KEY +{ + /// + [NativeTypeName("PWSTR")] + public char* pUrlPrefix; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.xml new file mode 100644 index 0000000000..176a301f9d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_KEY.xml @@ -0,0 +1,11 @@ + + + + + + TheHTTP_SERVICE_CONFIG_URLACL_KEY structure is used to specify a particular reservation record in the URL namespace reservation store. It is a member of the and structures. + + + A pointer to theUrlPrefix string that defines the portion of the URL namespace to which this reservation pertains. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.cs new file mode 100644 index 0000000000..d1a6e7c38b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SERVICE_CONFIG_URLACL_PARAM +{ + /// + [NativeTypeName("PWSTR")] + public char* pStringSecurityDescriptor; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.xml new file mode 100644 index 0000000000..53f1ee712c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_PARAM.xml @@ -0,0 +1,11 @@ + + + + + + TheHTTP_SERVICE_CONFIG_URLACL_PARAM structure is used to specify the permissions associated with a particular record in the URL namespace reservation store. It is a member of the structure. + + + A pointer to aSecurity Descriptor Definition Language (SDDL) string that contains the permissions associated with this URL namespace reservation record. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.cs new file mode 100644 index 0000000000..47b867eefc --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_URLACL_QUERY +{ + /// + public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; + + /// + public HTTP_SERVICE_CONFIG_URLACL_KEY KeyDesc; + + /// + [NativeTypeName("DWORD")] + public uint dwToken; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.xml new file mode 100644 index 0000000000..2de79cc970 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_QUERY.xml @@ -0,0 +1,29 @@ + + + + + + TheHTTP_SERVICE_CONFIG_URLACL_QUERY structure is used to specify a particular reservation record to query in the URL namespace reservation store. It is passed to the function using the pInputConfigInfo parameter when the ConfigId parameter is equal to HttpServiceConfigUrlAclInfo. + + + + One of the following values from the enumeration. +

HttpServiceConfigQueryExact

+ Returns a single record. +

HttpServiceConfigQueryNext

+ Returns a sequence of records in a sequence of calls, controlled by the dwToken parameter. +
+
+ + + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then KeyDesc should contain an structure that identifies the reservation record queried. + If the QueryDesc parameter is equal to HttpServiceConfigQueryNext, KeyDesc is ignored. + + + + + If the QueryDesc parameter is equal to HttpServiceConfigQueryNext, then dwToken must be equal to zero on the first call to the function, one on the second call, two on the third call, and so forth until all reservation records are returned, at which pointHttpQueryServiceConfiguration returns ERROR_NO_MORE_ITEMS. + If the QueryDesc parameter is equal to HttpServiceConfigQueryExact, then dwToken is ignored. + + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.cs new file mode 100644 index 0000000000..82e703a999 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SERVICE_CONFIG_URLACL_SET +{ + /// + public HTTP_SERVICE_CONFIG_URLACL_KEY KeyDesc; + + /// + public HTTP_SERVICE_CONFIG_URLACL_PARAM ParamDesc; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.xml new file mode 100644 index 0000000000..6d3d0a102a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SERVICE_CONFIG_URLACL_SET.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_SERVICE_CONFIG_URLACL_SET structure is used to add a new record to the URL reservation store or retrieve an existing record from it. An instance of the structure is used to pass data in through the pConfigInformation parameter of the function, or to retrieve data through the pOutputConfigInformation parameter of the function when the ConfigId parameter of either function is equal to HTTPServiceConfigUrlAclInfo. + + + An structure that identifies the URL reservation record. + + + An structure that holds the contents of the specified URL reservation record. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.cs new file mode 100644 index 0000000000..af6a4db61f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.cs @@ -0,0 +1,29 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SSL_CLIENT_CERT_INFO +{ + /// + [NativeTypeName("ULONG")] + public uint CertFlags; + + /// + [NativeTypeName("ULONG")] + public uint CertEncodedSize; + + /// + [NativeTypeName("PUCHAR")] + public byte* pCertEncoded; + + /// + public HANDLE Token; + + /// + [NativeTypeName("BOOLEAN")] + public byte CertDeniedByMapper; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.xml new file mode 100644 index 0000000000..889f9db6b0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_CLIENT_CERT_INFO.xml @@ -0,0 +1,31 @@ + + + + + + TheHTTP_SSL_CLIENT_CERT_INFO structure contains data about a Secure Sockets Layer (SSL) client certificate that can be used to determine whether the certificate is valid. + + + + Flags that indicate whether the certificate is valid. The possible values for this member are a SSPI Status Code returned from SSPI or one of the following flags from the dwError member of the structure: +

CERT_E_EXPIRED

+

CERT_E_UNTRUSTEDCA

+

CERT_E_WRONG_USAGE

+

CERT_E_UNTRUSTEDROOT

+

CERT_E_REVOKED

+

CERT_E_CN_NO_MATCH

+
+
+ + The size, in bytes, of the certificate. + + + A pointer to the actual certificate. + + + A handle to an access token. If the HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER flag is set using the function, and the client certificate was successfully mapped to an operating-system user account, then this member contains the handle to a validaccess token. When theHTTP_SSL_CLIENT_CERT_INFO structure is no longer required, release this token explicitly by closing the handle. + + + Reserved. + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.cs new file mode 100644 index 0000000000..497e992a4f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.cs @@ -0,0 +1,40 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_SSL_INFO +{ + /// + public ushort ServerCertKeySize; + + /// + public ushort ConnectionKeySize; + + /// + [NativeTypeName("ULONG")] + public uint ServerCertIssuerSize; + + /// + [NativeTypeName("ULONG")] + public uint ServerCertSubjectSize; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pServerCertIssuer; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pServerCertSubject; + + /// + [NativeTypeName("PHTTP_SSL_CLIENT_CERT_INFO")] + public HTTP_SSL_CLIENT_CERT_INFO* pClientCertInfo; + + /// + [NativeTypeName("ULONG")] + public uint SslClientCertNegotiated; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.xml new file mode 100644 index 0000000000..ae4844bdad --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_INFO.xml @@ -0,0 +1,32 @@ + + + + + + TheHTTP_SSL_INFO structure contains data for a connection that uses Secure Sockets Layer (SSL), obtained through the SSL handshake. + + + The size, in bytes, of the public key used to sign the server certificate. + + + The size, in bytes, of the cipher key used to encrypt the current session. + + + The size, in bytes, of the string pointed to by the pServerCertIssuer member not including the terminating null character. + + + The size, in bytes, of the string pointed to by the pServerCertSubject member not including the terminating null character. + + + A pointer to a null-terminated string of octets that specifies the name of the entity that issued the certificate. + + + A pointer to a null-terminated string of octets that specifies the name of the entity to which the certificate belongs. + + + A pointer to an structure that specifies the client certificate. + + + If non-zero, indicates that the client certificate is already present locally. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_PROTOCOL_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_PROTOCOL_INFO.cs new file mode 100644 index 0000000000..47ae074b83 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_PROTOCOL_INFO.cs @@ -0,0 +1,38 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_SSL_PROTOCOL_INFO +{ + /// + [NativeTypeName("ULONG")] + public uint Protocol; + + /// + [NativeTypeName("ULONG")] + public uint CipherType; + + /// + [NativeTypeName("ULONG")] + public uint CipherStrength; + + /// + [NativeTypeName("ULONG")] + public uint HashType; + + /// + [NativeTypeName("ULONG")] + public uint HashStrength; + + /// + [NativeTypeName("ULONG")] + public uint KeyExchangeType; + + /// + [NativeTypeName("ULONG")] + public uint KeyExchangeStrength; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.cs b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.cs new file mode 100644 index 0000000000..cc4bd21f54 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.cs @@ -0,0 +1,34 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE +{ + /// + ExParamTypeHttp2Window, + + /// + ExParamTypeHttp2SettingsLimits, + + /// + ExParamTypeHttpPerformance, + + /// + ExParamTypeTlsRestrictions, + + /// + ExParamTypeErrorHeaders, + + /// + ExParamTypeTlsSessionTicketKeys, + + /// + ExParamTypeCertConfig, + + /// + ExParamTypeMax, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.cs new file mode 100644 index 0000000000..9cdfa3984a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_STATE_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + public HTTP_ENABLED_STATE State; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.xml new file mode 100644 index 0000000000..108d52faa4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_STATE_INFO.xml @@ -0,0 +1,20 @@ + + + + + + + The HTTP_STATE_INFO structure is used to enable or disable a Server Session or URL Group. + This structure must be used when setting or querying the on a URL Group or Server Session. + + + + The structure specifying whether the property is present. + + + + A member of the enumeration specifying the whether the configuration object is enabled or disabled. + This can be used to disable a URL Group or Server Session. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.cs b/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.cs new file mode 100644 index 0000000000..c4511a6db0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.cs @@ -0,0 +1,32 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_TIMEOUT_LIMIT_INFO +{ + /// + public HTTP_PROPERTY_FLAGS Flags; + + /// + public ushort EntityBody; + + /// + public ushort DrainEntityBody; + + /// + public ushort RequestQueue; + + /// + public ushort IdleConnection; + + /// + public ushort HeaderWait; + + /// + [NativeTypeName("ULONG")] + public uint MinSendRate; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.xml b/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.xml new file mode 100644 index 0000000000..d6a7084308 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TIMEOUT_LIMIT_INFO.xml @@ -0,0 +1,47 @@ + + + + + + + The HTTP_TIMEOUT_LIMIT_INFO structure defines the application-specific connection timeout limits. + This structure must be used when setting or querying the on a URL Group, server session, or request queue. + + + + The structure that specifies whether the property is present. + + + + The time, in seconds, allowed for the request entity body to arrive. + The HTTP Server API turns on this timer when the request has an entity body. The timer expiration is initially set to the configured value. When the HTTP Server API receives additional data indications on the request, it resets the timer to give the connection another interval. + + + + + The time, in seconds, allowed for the HTTP Server API to drain the entity body on a Keep-Alive connection. + On a Keep-Alive connection, after the application has sent a response for a request and before the request entity body has completely arrived, the HTTP Server API starts draining the remainder of the entity body to reach another potentially pipelined request from the client. If the time to drain the remaining entity body exceeds the allowed period the connection is timed out. + + + + The time, in seconds, allowed for the request to remain in the request queue before the application picks it up. + + + + The time, in seconds, allowed for an idle connection. + This timeout is only enforced after the first request on the connection is routed to the application. For more information, see the Remarks section. + + + + + The time, in seconds, allowed for the HTTP Server API to parse the request header. + This timeout is only enforced after the first request on the connection is routed to the application. For more information, see the Remarks section. + + + + + The minimum send rate, in bytes-per-second, for the response. The default response send rate is 150 bytes-per-second. + To disable this timer, set MinSendRate to MAXULONG. + + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TLS_RESTRICTIONS_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_TLS_RESTRICTIONS_PARAM.cs new file mode 100644 index 0000000000..f3e5696d3c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TLS_RESTRICTIONS_PARAM.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TLS_RESTRICTIONS_PARAM +{ + /// + [NativeTypeName("ULONG")] + public uint RestrictionCount; + + /// + [NativeTypeName("PVOID")] + public void* TlsRestrictions; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TLS_SESSION_TICKET_KEYS_PARAM.cs b/sources/Interop/Windows/Windows/um/http/HTTP_TLS_SESSION_TICKET_KEYS_PARAM.cs new file mode 100644 index 0000000000..4dbb14a13c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TLS_SESSION_TICKET_KEYS_PARAM.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TLS_SESSION_TICKET_KEYS_PARAM +{ + /// + [NativeTypeName("ULONG")] + public uint SessionTicketKeyCount; + + /// + [NativeTypeName("PVOID")] + public void* SessionTicketKeys; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.cs new file mode 100644 index 0000000000..a5aafd57ab --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TRANSPORT_ADDRESS +{ + /// + [NativeTypeName("PSOCKADDR")] + public SOCKADDR* pRemoteAddress; + + /// + [NativeTypeName("PSOCKADDR")] + public SOCKADDR* pLocalAddress; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.xml b/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.xml new file mode 100644 index 0000000000..bdfad4ad80 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_TRANSPORT_ADDRESS.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_TRANSPORT_ADDRESS structure specifies the addresses (local and remote) used for a particular HTTP connection. + + + A pointer to the remote IP address associated with this connection. For more information about how to access this address, see the Remarks section. + + + A pointer to the local IP address associated with this connection. For more information about how to access this address, see the Remarks section. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.cs b/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.cs new file mode 100644 index 0000000000..da33d2bc08 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.cs @@ -0,0 +1,24 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_UNKNOWN_HEADER +{ + /// + public ushort NameLength; + + /// + public ushort RawValueLength; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pName; + + /// + [NativeTypeName("PCSTR")] + public sbyte* pRawValue; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.xml b/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.xml new file mode 100644 index 0000000000..3fb515dcf7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_UNKNOWN_HEADER.xml @@ -0,0 +1,20 @@ + + + + + + TheHTTP_UNKNOWN_HEADER structure contains the name and value for a header in an HTTP request or response whose name does not appear in the enumeration. + + + The size, in bytes, of the data pointed to by the pName member not counting a terminating null. + + + The size, in bytes, of the data pointed to by the pRawValue member, in bytes. + + + A pointer to a string of octets that specifies the header name. Use NameLength to determine the end of the string, rather than relying on a terminating null. + + + A pointer to a string of octets that specifies the values for this header. Use RawValueLength to determine the end of the string, rather than relying on a terminating null. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_VERB.cs b/sources/Interop/Windows/Windows/um/http/HTTP_VERB.cs new file mode 100644 index 0000000000..01a5a4ac03 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_VERB.cs @@ -0,0 +1,73 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_VERB +{ + /// + HttpVerbUnparsed, + + /// + HttpVerbUnknown, + + /// + HttpVerbInvalid, + + /// + HttpVerbOPTIONS, + + /// + HttpVerbGET, + + /// + HttpVerbHEAD, + + /// + HttpVerbPOST, + + /// + HttpVerbPUT, + + /// + HttpVerbDELETE, + + /// + HttpVerbTRACE, + + /// + HttpVerbCONNECT, + + /// + HttpVerbTRACK, + + /// + HttpVerbMOVE, + + /// + HttpVerbCOPY, + + /// + HttpVerbPROPFIND, + + /// + HttpVerbPROPPATCH, + + /// + HttpVerbMKCOL, + + /// + HttpVerbLOCK, + + /// + HttpVerbUNLOCK, + + /// + HttpVerbSEARCH, + + /// + HttpVerbMaximum, +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_VERB.xml b/sources/Interop/Windows/Windows/um/http/HTTP_VERB.xml new file mode 100644 index 0000000000..e1e9cb99c1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_VERB.xml @@ -0,0 +1,90 @@ + + + + + + TheHTTP_VERB enumeration type defines values that are used to specify known, standard HTTP verbs in theHTTP_REQUEST structure. The majority of these known verbs are documented in RFC 2616 andRFC 2518, as indicated below. + + + Not relevant for applications; used only in kernel mode. + + + Indicates that the application can examine the UnknownVerbLength and pUnknownVerb members of the HTTP_REQUEST structure to retrieve the HTTP verb for the request. This is the case in an HTTP/1.1 request when a browser client specifies a custom verb. + + + Not relevant for applications; used only in kernel mode. + + + + The OPTIONS method requests information about the communication options and requirements associated with a URI. + See page 52 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + + The GET method retrieves the information or entity that is identified by the URI of the Request. If that URI refers to a script or other data-producing process, it is the data produced, not the text of the script, that is returned in the response. + A GET method can be made conditional or partial by including a conditional or Range header field in the request. A conditional GET requests that the entity be sent only if all conditions specified in the header are met, and a partial GET requests only part of the entity, as specified in the Range header. Both of these forms of GET can help avoid unnecessary network traffic. + See page 53 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + + The HEAD method is identical to GET except that the server only returns message-headers in the response, without a message-body. The headers are the same as would be returned in response to a GET. + See page 54 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + + The POST method is used to post a new entity as an addition to a URI. The URI identifies an entity that consumes the posted data in some fashion. + See page 54 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + + The PUT method is used to replace an entity identified by a URI. + See page 55 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + + The DELETE method requests that a specified URI be deleted. + See page 56 of <a href="https://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>. + + + + The TRACE method invokes a remote, application-layer loop-back of the request message. It allows the client to see what is being received at the other end of the request chain for diagnostic purposes. See page 56 of RFC 2616. + + + The CONNECT method can be used with a proxy that can dynamically switch to tunneling, as in the case of SSL tunneling. See page 57 of RFC 2616. + + + The TRACK method is used by Microsoft Cluster Server to implement a non-logged trace. + + + The MOVE method requests a WebDAV operation equivalent to a copy (COPY), followed by consistency maintenance processing, followed by a delete of the source, where all three actions are performed atomically. When applied to a collection, "Depth" is assumed to be or must be specified as "infinity". See page 42 of RFC 2518. + + + The COPY method requests a WebDAV operation that creates a duplicate of the source resource, identified by the Request URI, in the destination resource, identified by a URI specified in the Destination header. See page 37 of RFC 2518. + + + The PROPFIND method requests a WebDAV operation that retrieves properties defined on the resource identified by the Request-URI. See page 24 of RFC 2518. + + + The PROPPATCH method requests a WebDAV operation that sets and/or removes properties defined on the resource identified by the Request-URI. See page 31 of RFC 2518. + + + The MKCOL method requests a WebDAV operation that creates a new collection resource at the location specified by the Request-URI. See page 33 of RFC 2518. + + + The LOCK method requests a WebDAV operation that creates a lock as specified by the lockinfo XML element on the Request-URI. See page 45 of RFC 2518. + + + The UNLOCK method requests a WebDAV operation that removes a lock, identified by a lock token in the Lock-Token request header, from the resource identified by the Request-URI, and from all other resources included in the lock. See page 51 of RFC 2518. + + + The SEARCH method requests a WebDAV operation used by Microsoft Exchange to search folders. See the Internet Engineering Task Force (IETF) Internet Draft WebDAV SEARCH for more information, and the WebDAV Web site for possible updates. + + + Terminates the enumeration; is not used to define a verb. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.cs b/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.cs new file mode 100644 index 0000000000..460923a311 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_VERSION +{ + /// + public ushort MajorVersion; + + /// + public ushort MinorVersion; +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.xml b/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.xml new file mode 100644 index 0000000000..35084d6ee0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_VERSION.xml @@ -0,0 +1,14 @@ + + + + + + TheHTTP_VERSION structure defines a version of the HTTP protocol that a request requires or a response provides. This is not to be confused with the version of the HTTP Server API used, which is stored in an structure. + + + Major version of the HTTP protocol. + + + Minor version of the HTTP protocol. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_WINHTTP_FAST_FORWARDING_DATA.cs b/sources/Interop/Windows/Windows/um/http/HTTP_WINHTTP_FAST_FORWARDING_DATA.cs new file mode 100644 index 0000000000..8fba7537ff --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_WINHTTP_FAST_FORWARDING_DATA.cs @@ -0,0 +1,23 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_WINHTTP_FAST_FORWARDING_DATA +{ + /// + [NativeTypeName("UCHAR[16]")] + public _Reserved_e__FixedBuffer Reserved; + + /// + [InlineArray(16)] + public partial struct _Reserved_e__FixedBuffer + { + public byte e0; + } +} diff --git a/sources/Interop/Windows/Windows/um/http/HTTP_WSK_API_TIMINGS.cs b/sources/Interop/Windows/Windows/um/http/HTTP_WSK_API_TIMINGS.cs new file mode 100644 index 0000000000..af3195ffc7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/HTTP_WSK_API_TIMINGS.cs @@ -0,0 +1,58 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public partial struct HTTP_WSK_API_TIMINGS +{ + /// + [NativeTypeName("ULONGLONG")] + public ulong ConnectCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ConnectSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong DisconnectCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong DisconnectSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SendCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong SendSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReceiveCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReceiveSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReleaseCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ReleaseSum; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ControlSocketCount; + + /// + [NativeTypeName("ULONGLONG")] + public ulong ControlSocketSum; +} diff --git a/sources/Interop/Windows/Windows/um/http/PHTTP_FEATURE_ID.xml b/sources/Interop/Windows/Windows/um/http/PHTTP_FEATURE_ID.xml new file mode 100644 index 0000000000..8bf3276e7f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/PHTTP_FEATURE_ID.xml @@ -0,0 +1,23 @@ + + + + + + Defines constants that specify an identifier for an HTTP feature. + + + Specifies an unknown feature. + + + Specifies HTTP response trailers. + + + Specifies HTTP API timings. + + + Specifies a request for delegation. + + + Specifies the maximum number of supported features. + + \ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/http/Windows.cs b/sources/Interop/Windows/Windows/um/http/Windows.cs new file mode 100644 index 0000000000..22929c2fb9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/Windows.cs @@ -0,0 +1,232 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/http.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; +using System.Runtime.Versioning; + +namespace TerraFX.Interop.Windows; + +public static unsafe partial class Windows +{ + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpInitialize(HTTPAPI_VERSION Version, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PVOID")] void* pReserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpTerminate([NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PVOID")] void* pReserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCreateHttpHandle([NativeTypeName("PHANDLE")] HANDLE* RequestQueueHandle, [NativeTypeName("ULONG")] uint Reserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCreateRequestQueue(HTTPAPI_VERSION Version, [NativeTypeName("PCWSTR")] char* Name, [NativeTypeName("PSECURITY_ATTRIBUTES")] SECURITY_ATTRIBUTES* SecurityAttributes, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PHANDLE")] HANDLE* RequestQueueHandle); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCloseRequestQueue(HANDLE RequestQueueHandle); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSetRequestQueueProperty(HANDLE RequestQueueHandle, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength, [NativeTypeName("ULONG")] uint Reserved1, [NativeTypeName("PVOID")] void* Reserved2); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpQueryRequestQueueProperty(HANDLE RequestQueueHandle, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength, [NativeTypeName("ULONG")] uint Reserved1, [NativeTypeName("PULONG")] uint* ReturnLength, [NativeTypeName("PVOID")] void* Reserved2); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSetRequestProperty(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_OPAQUE_ID")] ulong Id, HTTP_REQUEST_PROPERTY PropertyId, [NativeTypeName("PVOID")] void* Input, [NativeTypeName("ULONG")] uint InputPropertySize, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpShutdownRequestQueue(HANDLE RequestQueueHandle); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpReceiveClientCertificate(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_CONNECTION_ID")] ulong ConnectionId, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PHTTP_SSL_CLIENT_CERT_INFO")] HTTP_SSL_CLIENT_CERT_INFO* SslClientCertInfo, [NativeTypeName("ULONG")] uint SslClientCertInfoSize, [NativeTypeName("PULONG")] uint* BytesReceived, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCreateServerSession(HTTPAPI_VERSION Version, [NativeTypeName("PHTTP_SERVER_SESSION_ID")] ulong* ServerSessionId, [NativeTypeName("ULONG")] uint Reserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCloseServerSession([NativeTypeName("HTTP_SERVER_SESSION_ID")] ulong ServerSessionId); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpQueryServerSessionProperty([NativeTypeName("HTTP_SERVER_SESSION_ID")] ulong ServerSessionId, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength, [NativeTypeName("PULONG")] uint* ReturnLength); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSetServerSessionProperty([NativeTypeName("HTTP_SERVER_SESSION_ID")] ulong ServerSessionId, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpAddUrl(HANDLE RequestQueueHandle, [NativeTypeName("PCWSTR")] char* FullyQualifiedUrl, [NativeTypeName("PVOID")] void* Reserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpRemoveUrl(HANDLE RequestQueueHandle, [NativeTypeName("PCWSTR")] char* FullyQualifiedUrl); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCreateUrlGroup([NativeTypeName("HTTP_SERVER_SESSION_ID")] ulong ServerSessionId, [NativeTypeName("PHTTP_URL_GROUP_ID")] ulong* pUrlGroupId, [NativeTypeName("ULONG")] uint Reserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCloseUrlGroup([NativeTypeName("HTTP_URL_GROUP_ID")] ulong UrlGroupId); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpAddUrlToUrlGroup([NativeTypeName("HTTP_URL_GROUP_ID")] ulong UrlGroupId, [NativeTypeName("PCWSTR")] char* pFullyQualifiedUrl, [NativeTypeName("HTTP_URL_CONTEXT")] ulong UrlContext, [NativeTypeName("ULONG")] uint Reserved); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpRemoveUrlFromUrlGroup([NativeTypeName("HTTP_URL_GROUP_ID")] ulong UrlGroupId, [NativeTypeName("PCWSTR")] char* pFullyQualifiedUrl, [NativeTypeName("ULONG")] uint Flags); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSetUrlGroupProperty([NativeTypeName("HTTP_URL_GROUP_ID")] ulong UrlGroupId, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpQueryUrlGroupProperty([NativeTypeName("HTTP_URL_GROUP_ID")] ulong UrlGroupId, HTTP_SERVER_PROPERTY Property, [NativeTypeName("PVOID")] void* PropertyInformation, [NativeTypeName("ULONG")] uint PropertyInformationLength, [NativeTypeName("PULONG")] uint* ReturnLength); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + [SupportedOSPlatform("windows6.2")] + public static extern uint HttpPrepareUrl([NativeTypeName("PVOID")] void* Reserved, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PCWSTR")] char* Url, [NativeTypeName("PWSTR *")] char** PreparedUrl); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpReceiveHttpRequest(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PHTTP_REQUEST")] HTTP_REQUEST_V2* RequestBuffer, [NativeTypeName("ULONG")] uint RequestBufferLength, [NativeTypeName("PULONG")] uint* BytesReturned, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpReceiveRequestEntityBody(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PVOID")] void* EntityBuffer, [NativeTypeName("ULONG")] uint EntityBufferLength, [NativeTypeName("PULONG")] uint* BytesReturned, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSendHttpResponse(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("PHTTP_RESPONSE")] HTTP_RESPONSE_V2* HttpResponse, [NativeTypeName("PHTTP_CACHE_POLICY")] HTTP_CACHE_POLICY* CachePolicy, [NativeTypeName("PULONG")] uint* BytesSent, [NativeTypeName("PVOID")] void* Reserved1, [NativeTypeName("ULONG")] uint Reserved2, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped, [NativeTypeName("PHTTP_LOG_DATA")] HTTP_LOG_DATA* LogData); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSendResponseEntityBody(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("ULONG")] uint Flags, ushort EntityChunkCount, [NativeTypeName("PHTTP_DATA_CHUNK")] HTTP_DATA_CHUNK* EntityChunks, [NativeTypeName("PULONG")] uint* BytesSent, [NativeTypeName("PVOID")] void* Reserved1, [NativeTypeName("ULONG")] uint Reserved2, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped, [NativeTypeName("PHTTP_LOG_DATA")] HTTP_LOG_DATA* LogData); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + [SupportedOSPlatform("windows10.0")] + public static extern uint HttpDeclarePush(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, HTTP_VERB Verb, [NativeTypeName("PCWSTR")] char* Path, [NativeTypeName("PCSTR")] sbyte* Query, [NativeTypeName("PHTTP_REQUEST_HEADERS")] HTTP_REQUEST_HEADERS* Headers); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpWaitForDisconnect(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_CONNECTION_ID")] ulong ConnectionId, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpWaitForDisconnectEx(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_CONNECTION_ID")] ulong ConnectionId, [NativeTypeName("ULONG")] uint Reserved, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpCancelHttpRequest(HANDLE RequestQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpWaitForDemandStart(HANDLE RequestQueueHandle, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [SupportedOSPlatform("windows10.0.19043.0")] + public static extern BOOL HttpIsFeatureSupported(HTTP_FEATURE_ID FeatureId); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + [SupportedOSPlatform("windows10.0.19043.0")] + public static extern uint HttpDelegateRequestEx(HANDLE RequestQueueHandle, HANDLE DelegateQueueHandle, [NativeTypeName("HTTP_REQUEST_ID")] ulong RequestId, [NativeTypeName("HTTP_URL_GROUP_ID")] ulong DelegateUrlGroupId, [NativeTypeName("ULONG")] uint PropertyInfoSetSize, [NativeTypeName("PHTTP_DELEGATE_REQUEST_PROPERTY_INFO")] HTTP_DELEGATE_REQUEST_PROPERTY_INFO* PropertyInfoSet); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + [SupportedOSPlatform("windows10.0.19043.0")] + public static extern uint HttpFindUrlGroupId([NativeTypeName("PCWSTR")] char* FullyQualifiedUrl, HANDLE RequestQueueHandle, [NativeTypeName("PHTTP_URL_GROUP_ID")] ulong* UrlGroupId); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpFlushResponseCache(HANDLE RequestQueueHandle, [NativeTypeName("PCWSTR")] char* UrlPrefix, [NativeTypeName("ULONG")] uint Flags, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpAddFragmentToCache(HANDLE RequestQueueHandle, [NativeTypeName("PCWSTR")] char* UrlPrefix, [NativeTypeName("PHTTP_DATA_CHUNK")] HTTP_DATA_CHUNK* DataChunk, [NativeTypeName("PHTTP_CACHE_POLICY")] HTTP_CACHE_POLICY* CachePolicy, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpReadFragmentFromCache(HANDLE RequestQueueHandle, [NativeTypeName("PCWSTR")] char* UrlPrefix, [NativeTypeName("PHTTP_BYTE_RANGE")] HTTP_BYTE_RANGE* ByteRange, [NativeTypeName("PVOID")] void* Buffer, [NativeTypeName("ULONG")] uint BufferLength, [NativeTypeName("PULONG")] uint* BytesRead, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpSetServiceConfiguration(HANDLE ServiceHandle, HTTP_SERVICE_CONFIG_ID ConfigId, [NativeTypeName("PVOID")] void* pConfigInformation, [NativeTypeName("ULONG")] uint ConfigInformationLength, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* pOverlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + [SupportedOSPlatform("windows10.0.15063.0")] + public static extern uint HttpUpdateServiceConfiguration(HANDLE Handle, HTTP_SERVICE_CONFIG_ID ConfigId, [NativeTypeName("PVOID")] void* ConfigInfo, [NativeTypeName("ULONG")] uint ConfigInfoLength, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* Overlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpDeleteServiceConfiguration(HANDLE ServiceHandle, HTTP_SERVICE_CONFIG_ID ConfigId, [NativeTypeName("PVOID")] void* pConfigInformation, [NativeTypeName("ULONG")] uint ConfigInformationLength, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* pOverlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpQueryServiceConfiguration(HANDLE ServiceHandle, HTTP_SERVICE_CONFIG_ID ConfigId, [NativeTypeName("PVOID")] void* pInput, [NativeTypeName("ULONG")] uint InputLength, [NativeTypeName("PVOID")] void* pOutput, [NativeTypeName("ULONG")] uint OutputLength, [NativeTypeName("PULONG")] uint* pReturnLength, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* pOverlapped); + + /// + [DllImport("httpapi", ExactSpelling = true)] + [return: NativeTypeName("ULONG")] + public static extern uint HttpGetExtension(HTTPAPI_VERSION Version, [NativeTypeName("ULONG")] uint Extension, [NativeTypeName("PVOID")] void* Buffer, [NativeTypeName("ULONG")] uint BufferSize); +} diff --git a/sources/Interop/Windows/Windows/um/http/Windows.xml b/sources/Interop/Windows/Windows/um/http/Windows.xml new file mode 100644 index 0000000000..55e1bae79b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/http/Windows.xml @@ -0,0 +1,2944 @@ + + + + + + TheHttpAddFragmentToCache function caches a data fragment with a specified name by which it can be retrieved, or updates data cached under a specified name. Such cached data fragments can be used repeatedly to construct dynamic responses without the expense of disk reads. For example, a response composed of text and three images could be assembled dynamically from four or more cached fragments at the time a request is processed. + + Handle to the request queue with which this cache is associated. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + + Pointer to a UrlPrefix string that the application uses in subsequent calls to to identify this cache entry. The application must have called HttpAddUrl previously with the same handle as in the ReqQueueHandle parameter, and with either this identical UrlPrefix string or a valid prefix of it. + Like any UrlPrefix, this string must take the form "scheme://host:port/relativeURI"; for example, http://www.mysite.com:80/image1.gif. + + Pointer to an structure that specifies an entity body data block to cache under the name pointed to by pUrlPrefix. + Pointer to an structure that specifies how this data fragment should be cached. + + For asynchronous calls, set pOverlapped to point to an structure, or for synchronous calls, set it to NULL. + A synchronous call blocks the calling thread until the cache operation is complete, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the cache request is queued and will complete later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + TheHttpAddUrl function registers a given URL so that requests that match it are routed to a specified HTTP Server API request queue. An application can register multiple URLs to a single request queue using repeated calls toHttpAddUrl. For more information about how HTTP Server API matches request URLs to registered URLs, seeUrlPrefix Strings. + Starting with HTTP Server API Version 2.0, applications should call to register a URL; HttpAddUrl should not be used. + + + The handle to the request queue to which requests for the specified URL are to be routed. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + A pointer to a Unicode string that contains a properly formedUrlPrefix string that identifies the URL to be registered. + Reserved; must be NULL. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_ACCESS_DENIED + + + + + The calling application does not have permission to register the URL. + + + + + + + ERROR_DLL_INIT_FAILED + + + + + The calling application did not call before calling this function. + + + + + + + ERROR_INVALID_PARAMETER + + + + + One of the parameters are invalid. + + + + + + + ERROR_ALREADY_EXISTS + + + + + The specified UrlPrefix conflicts with an existing registration. + + + + + + + ERROR_NOT_ENOUGH_MEMORY + + + + + Insufficient resources to complete the operation. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + The HttpAddUrlToUrlGroup function adds the specified URL to the URL Group identified by the URL Group ID. + This function replaces the HTTP version 1.0 function. + + The group ID for the URL group to which requests for the specified URL are routed. The URL group is created by the function. + A pointer to a Unicode string that contains a properly formed UrlPrefix String that identifies the URL to be registered. If you are not running as an administrator, specify a port number greater than 1024, otherwise you may get an ERROR_ACCESS_DENIED error. + The context that is associated with the URL registered in this call. The URL context is returned in the HTTP_REQUEST structure with every request received on the URL specified in the pFullyQualifiedUrl parameter. + Reserved. Must be zero. + + If the function succeeds, it returns NO_ERROR + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The UrlGroupId does not exist.The Reserved parameter is not zero.The application does not have permission to add URLs to the Group. Only the application that created the URL Group can add URLs. + + + + + + + ERROR_ACCESS_DENIED + + + + + The calling process does not have permission to register the URL. + + + + + + + ERROR_ALREADY_EXISTS + + + + + The specified URL conflicts with an existing registration. + + + + + + The HTTPAPI_EQUAL_VERSION returns a non-zero value if an structure is exactly equal to a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HTTPAPI_GREATER_VERSION returns a non-zero value if an structure is greater than a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HTTPAPI_LESS_VERSION returns a non-zero value if an structure is less than a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HTTPAPI_VERSION_GREATER_OR_EQUAL returns a non-zero value if an structure is greater than or equal to a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HttpCancelHttpRequest function cancels a specified request. + A handle to the request queue from which the request came. + The ID of the request to be canceled. + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + If the function succeeds, it returns NO_ERROR. + + + + The HttpCloseRequestQueue function closes the handle to the specified request queue created by . + The application must close the request queue when it is no longer required. + + The handle to the request queue that is closed. A request queue is created and its handle returned by a call to the function. + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The application does not have permission to close the request queue. Only the application that created the request queue can close it. + + + + + + The HttpCloseServerSession function deletes the server session identified by the server session ID. All remaining URL Groups associated with the server session will also be closed. + The ID of the server session that is closed. + + If the function succeeds, it returns NO_ERROR + If the function fails, it can return one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The Server Session does not exist.The application does not have permission to close the server session. Only the application that created the server session can close the session. + + + + + + The HttpCloseUrlGroup function closes the URL Group identified by the URL Group ID. This call also removes all of the URLs that are associated with the URL Group. + The ID of the URL Group that is deleted. + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The ID of the URL Group does not exist.The application does not have permission to close the URL Group. Only the application that created the URL Group can close the group. + + + + + + + TheHttpCreateHttpHandle function creates an HTTP request queue for the calling application and returns a handle to it. + Starting with HTTP Server API Version 2.0, applications should call to create the request queue; HttpCreateHttpHandle should not be used. + + A pointer to a variable that receives a handle to the request queue. + Reserved. This parameter must be zero. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_DLL_INIT_FAILED + + + + + The calling application did not call before calling this function. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + The HttpCreateRequestQueue function creates a new request queue or opens an existing request queue. + This function replaces the HTTP version 1.0 function. + + + An HTTPAPI_VERSION structure indicating the request queue version. For version 2.0, declare an instance of the structure and set it to the predefined value HTTPAPI_VERSION_2 before passing it to HttpCreateRequestQueue. + The version must be 2.0; HttpCreateRequestQueue does not support version 1.0 request queues. + + + The name of the request queue. The length, in bytes, cannot exceed MAX_PATH. + The optional name parameter allows other processes to access the request queue by name. + + + A pointer to the SECURITY_ATTRIBUTES structure that contains the access permissions for the request queue. + This parameter must be NULL when opening an existing request queue. + + + The flags parameter defines the scope of the request queue. This parameter can be one or more of the following: + + + Value + Meaning + + + + + + + HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER + + + + + The handle to the request queue created using this flag cannot be used to perform I/O operations. This flag can be set only when the request queue handle is created. + + + + + + + HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING + + + + + The HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING flag allows applications to open an existing request queue by name and retrieve the request queue handle. The pName parameter must contain a valid request queue name; it cannot be NULL. + + + + A pointer to a variable that receives a handle to the request queue. This parameter must contain a valid pointer; it cannot be NULL. + + If the function succeeds, it returns NO_ERROR + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_REVISION_MISMATCH + + + + + The Version parameter contains an invalid version. + + + + + + + ERROR_INVALID_PARAMETER + + + + + The length, in bytes, of the request queue name cannot exceed MAX_PATH.The pSecurityAttributes parameter must be NULL when opening an existing request queue.The HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER can only be set when the request queue is created.The HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING can only be set when the application has permission to open an existing request queue. In this case, the pReqQueueHandle parameter must be a valid pointer, and the pName parameter must contain a valid request queue name; it cannot be NULL.The pReqQueueHandle parameter returned by is NULL. + + + + + + + ERROR_ALREADY_EXISTS + + + + + The pName parameter conflicts with an existing request queue that contains an identical name. + + + + + + + ERROR_ACCESS_DENIED + + + + + The calling process does not have a permission to open the request queue. + + + + + + + ERROR_DLL_INIT_FAILED + + + + + The application has not called prior to calling . + + + + + + The HttpCreateServerSession function creates a server session for the specified version. + + An HTTPAPI_VERSION structure that indicates the version of the server session. For version 2.0, declare an instance of the structure and set it to the predefined value HTTPAPI_VERSION_2 before passing it to HttpCreateServerSession. + The version must be 2.0; HttpCreateServerSession does not support version 1.0 request queues. + + A pointer to the variable that receives the ID of the server session. + Reserved. Must be zero. + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_REVISION_MISMATCH + + + + + The version passed is invalid or unsupported. + + + + + + + ERROR_INVALID_PARAMETER + + + + + The pServerSessionId parameter is null or the Reserved is non zero. + + + + + + Declares a resource-to-subresource relationship to use for an HTTP server push. HTTP.sys then performs an HTTP 2.0 server push for the given resource, if the underlying protocol, connection, client, and policies allow the push operation. + The handle to an HTTP.sys request queue that the function returned. + The opaque identifier of the request that is declaring the push operation. The request must be from the specified queue handle. + The HTTP verb to use for the push operation. The HTTP.sys push operation only supports HttpVerbGET and HttpVerbHEAD. + The path portion of the URL for the resource being pushed. + The query portion of the URL for the resource being pushed. This string should not include the leading question mark (?). + + The request headers for the push operation. + You should not provide a Host header, because HTTP.sys automatically generates the correct Host information. HTTP.sys does not support cross-origin push operations, so HTTP.sys enforces and generates Host information that matches the original client-initiated request. + The push request is not allowed to have an entity body, so you cannot include a non-zero Content-Length header or any Transfer-Encoding header. + + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns a system error code defined in WinError.h. + + + + Delegates a request from the source request queue to the target request queue. + A handle to the source request queue. + A handle to the target request queue. + A unique request ID received with . + The url group id of the target url group. + The number of entries in the PropertyInfoSet array. + An array of properties to be set on request when delegating. + A ULONG containing an NTSTATUS completion status. + + + TheHttpDeleteServiceConfiguration function deletes specified data, such as IP addresses or SSL Certificates, from the HTTP Server API configuration store, one record at a time. + This parameter is reserved and must be zero. + + Type of configuration. This parameter is one of the values in the enumeration. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + Deletes a specified IP address from the IP Listen List. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + Deletes a specified SSL certificate record. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + Deletes a specified URL reservation record. + + + + + + + HttpServiceConfigTimeout + + + + + Deletes a specified connection timeout.Windows Vista and later:  This enumeration is supported. + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + Deletes a specified SSL Server Name Indication (SNI) certificate record.Windows 8 and later:  This enumeration value is supported. + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + Deletes the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. The port is specified by the KeyDesc member of the structure that you pass to the pConfigInformation parameter.Windows 8 and later:  This enumeration value is supported. + + + + + Pointer to a buffer that contains data required for the type of configuration specified in the ConfigId parameter. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + + structure. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + + structure. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + + structure. + + + + + + + HttpServiceConfigTimeouts + + + + + + + structure. + + Windows Vista and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + + + structure. The hostname will be "*" when the SSL central certificate store is queried and wildcard bindings are used, and a host name for regular SNI. + + Windows 8 and later:  This structure is supported. + + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + + + + Size, in bytes, of the pConfigInformation buffer. + Reserved for future asynchronous operation. This parameter must be set to NULL. + + If the function succeeds, the function returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One of the parameters are invalid. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + Retrieves a URL group ID for a URL and a request queue. + The URL whose URL group to query. + The request queue associated with the URL group. + The matching URL group ID. + A ULONG containing an NTSTATUS completion status. + + + TheHttpFlushResponseCache function removes from the HTTP Server API cache associated with a given request queue all response fragments that have a name whose site portion matches a specified UrlPrefix. The application must previously have called , or to add this UrlPrefix or a valid prefix of it to the request queue in question, and then called to cache the associated response fragment or fragments. + + Handle to the request queue with which this cache is associated. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + Pointer to aUrlPrefix string to match against the site portion of fragment names. The application must previously have called to add this UrlPrefix or a valid prefix of it to the request queue in question, and then called to cache the associated response fragment. + + This parameter can contain the following flag: +

HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE

+ Causes response fragments that have names in which the site portion is a hierarchical descendant of the specified UrlPrefix to be removed from the fragment cache, in addition to those fragments having site portions that directly match. + + + For asynchronous calls, set pOverlapped to point to an structure, or for synchronous calls, set it to NULL. + A synchronous call blocks until the cache operation is complete, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the cache request is queued and completes later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One of the parameters are invalid. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + +
+ + The HttpInitialize function initializes the HTTP Server API driver, starts it, if it has not already been started, and allocates data structures for the calling application to support response-queue creation and other operations. Call this function before calling any other functions in the HTTP Server API. + HTTP version. This parameter is an structure. For the current version, declare an instance of the structure and set it to the pre-defined value HTTPAPI_VERSION_1 before passing it toHttpInitialize. + + Initialization options, which can include one or both of the following values. + + + Value + Meaning + + + + + + + HTTP_INITIALIZE_CONFIG + + + + + Perform initialization for applications that use the HTTP configuration functions, , , , and . + + + + + + + HTTP_INITIALIZE_SERVER + + + + + Perform initialization for applications that use the HTTP Server API. + + + + This parameter is reserved, and must be NULL. + + If the function succeeds, then the return value is NO_ERROR. + If the function fails, then the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The Flags parameter contains an unsupported value. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + Checks whether a particular feature is supported. + The identifier of the feature. + + TRUE if the feature is supported, otherwise FALSE. + + + The HttpPrepareUrl function parses, analyzes, and normalizes a non-normalized Unicode or punycode URL so it is safe and valid to use in other HTTP functions. + Reserved. Must be NULL. + Reserved. Must be zero. + A pointer to a string that represents the non-normalized Unicode or punycode URL to prepare. + + On successful output, a pointer to a string that represents the normalized URL. +
+ Note  Free PreparedUrl using .
+ + + If the function succeeds, it returns ERROR_SUCCESS. + If the function fails, it returns one of the following or a system error code defined in WinError.h. + +
+ + TheHttpQueryServiceConfiguration function retrieves one or more HTTP Server API configuration records. + Reserved. Must be zero. + + The configuration record query type. This parameter is one of the following values from the
enumeration.
+ + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + Queries the IP Listen List. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + Queries the SSL store for a specific certificate record. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + Queries URL reservation information. + + + + + + + HttpServiceConfigTimeout + + + + + Queries HTTP Server API wide connection timeouts.Windows Vista and later:  This enumeration is supported. + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + Queries the SSL Server Name Indication (SNI) store for a specific certificate record.Windows 8 and later:  This enumeration value is supported. + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + Queries the SSL configuration for an SSL Centralized Certificate Store (CCS) record on the port. The port is specified by the KeyDesc member of the structure that you pass to the pInputConfigInfo parameter.Windows 8 and later:  This enumeration value is supported. + + + + + A pointer to a structure whose contents further define the query and of the type that correlates with ConfigId in the following table. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + No input data; set to NULL. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + + structure. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + + structure. + + + + + + + HttpServiceConfigTimeout + + + + + + + structure. + + Windows Vista and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + +  For more information, see the appropriate query structures. + Size, in bytes, of the pInputConfigInfo buffer. + + A pointer to a buffer in which the query results are returned. The type of this buffer correlates with ConfigId. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + + structure. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + + structure. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + + structure. + + + + + + + HttpServiceConfigTimeout + + + + + + + HTTP_SERVICE_CONFIG_TIMEOUT_PARAM data type. + + Windows Vista and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + + + + Size, in bytes, of the pOutputConfigInfo buffer. + A pointer to a variable that receives the number of bytes to be written in the output buffer. If the output buffer is too small, the call fails with a return value of ERROR_INSUFFICIENT_BUFFER. The value pointed to by pReturnLength can be used to determine the minimum length the buffer requires for the call to succeed. + Reserved for asynchronous operation and must be set to NULL. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One of the parameters are invalid. + + + + + + + ERROR_INSUFFICIENT_BUFFER + + + + + The buffer pointed to by pOutputConfigInfo is too small to receive the output data. Call the function again with a buffer at least as large as the size pointed to by pReturnLength on exit. + + + + + + + ERROR_MORE_DATA + + + + + This error code is only returned when ConfigId is set to HttpServiceConfigTimeout. The buffer pointed to by pOutputConfigInfo is too small to receive the output data. Call the function again with a buffer at least as large as the size pointed to by pReturnLength on exit. + + + + + + + ERROR_NO_MORE_ITEMS + + + + + There are no more items to return that meet the specified criteria. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + +
+ + TheHttpReadFragmentFromCache function retrieves a response fragment having a specified name from the HTTP Server API cache. + + Handle to the request queue with which the specified response fragment is associated. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + Pointer to a UrlPrefix string that contains the name of the fragment to be retrieved. This must match a UrlPrefix string used in a previous successful call to . + Optional pointer to an structure that indicates a starting offset in the specified fragment and byte-count to be returned. NULL if not used, in which case the entire fragment is returned. + Pointer to a buffer into which the function copies the requested fragment. + Size, in bytes, of the pBuffer buffer. + + Optional pointer to a variable that receives the number of bytes to be written into the output buffer. If BufferLength is less than this number, the call fails with a return of ERROR_INSUFFICIENT_BUFFER, and the value pointed to by pBytesRead can be used to determine the minimum length of buffer required for the call to succeed. + When making an asynchronous call using pOverlapped, set pBytesRead to NULL. Otherwise, when pOverlapped is set to NULL, pBytesRead must contain a valid memory address, and not be set to NULL. + + + For asynchronous calls, set pOverlapped to point to an structure, or for synchronous calls, set it to NULL. + A synchronous call blocks until the cache operation is complete, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the cache request is queued and completes later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_MORE_DATA + + + + + The buffer pointed to by pBuffer is too small to receive all the requested data; the size of buffer required is pointed to by pBytesRead unless it was NULL or the call was asynchronous. In the case of an asynchronous call, the value pointed to by the lpNumberOfBytesTransferred parameter of the function is set to the buffer size required. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + TheHttpReceiveClientCertificate function is used by a server application to retrieve a client SSL certificate or channel binding token (CBT). + + A handle to the request queue with which the specified SSL client or CBT is associated. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + A value that identifies the connection to the client. This value is obtained from the ConnectionId element of anHTTP_REQUEST structure filled in by the function. + + A value that modifies the behavior of the HttpReceiveClientCertificate function + + + Value + Meaning + + + + + + + HTTP_RECEIVE_SECURE_CHANNEL_TOKEN + + + + 0x1 + + + + The pSslClientCertInfo parameter will be populated with CBT data.This value is supported on Windows 7, Windows Server 2008 R2, and later. + + + + + If the Flags parameter is 0, then this parameter points to an structure into which the function writes the requested client certificate information. The buffer pointed to by the pSslClientCertInfo should be sufficiently large enough to hold the HTTP_SSL_CLIENT_CERT_INFO structure plus the value of the CertEncodedSize member of this structure. + If the Flags parameter is HTTP_RECEIVE_SECURE_CHANNEL_TOKEN, then this parameter points to an structure into which the function writes the requested CBT information. The buffer pointed to by the pSslClientCertInfo should be sufficiently large enough to hold the HTTP_REQUEST_CHANNEL_BIND_STATUS structure plus the value of the ChannelTokenSize member of this structure. + + The size, in bytes, of the buffer pointed to by the pSslClientCertInfo parameter. + + An optional pointer to a variable that receives the number of bytes to be written to the structure pointed to by pSslClientCertInfo. If not used, set it to NULL. + When making an asynchronous call using pOverlapped, set pBytesReceived to NULL. Otherwise, when pOverlapped is set to NULL, pBytesReceived must contain a valid memory address, and not be set to NULL. + + + For asynchronous calls, set pOverlapped to point to an structure, or for synchronous calls, set it to NULL. + A synchronous call blocks until the client certificate is retrieved, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see the sectionSynchronization and Overlapped Input and Output. + + + + + Value + Meaning + + + + + + + NO_ERROR + + + + + The function succeeded. All the data has been written into the buffer pointed to by the pSslClientCertInfo parameter. The NumberOfBytesTransferred indicates how many bytes were written into the buffer. + + + + + + + ERROR_IO_PENDING + + + + + The function is being used asynchronously. The operation has been initiated and will complete later through normal overlapped I/O completion mechanisms. + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is not valid. + + + + + + + ERROR_INSUFFICIENT_BUFFER + + + + + The buffer pointed to by the pSslClientCertInfo parameter is too small to receive the data and no data was written. + + + + + + + ERROR_MORE_DATA + + + + + The buffer pointed to by the pSslClientCertInfo parameter is not large enough to receive all the data. Only the basic structure has been written and only partially populated.When the Flags parameter is 0, the structure has been written with the CertEncodedSize member populated. The caller should call the function again with a buffer that is at least the size, in bytes, of the HTTP_SSL_CLIENT_CERT_INFO structure plus the value of the CertEncodedSize member.When the Flags parameter is HTTP_RECEIVE_SECURE_CHANNEL_TOKEN, the structure has been written with the ChannelTokenSize member populated. The caller should call the function again with a buffer that is at least the size, in bytes, of the HTTP_REQUEST_CHANNEL_BIND_STATUS plus the value of the ChannelTokenSize member. + + + + + + + ERROR_NOT_FOUND + + + + + The function cannot find the client certificate or CBT. + + + + + + + Other + + + + + A system error code defined in the WinError.h header file. + + + + + + TheHttpReceiveHttpRequest function retrieves the next available HTTP request from the specified request queue either synchronously or asynchronously. + + A handle to the request queue from which to retrieve the next available request. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + On the first call to retrieve a request, this parameter should be HTTP_NULL_ID. Then, if more than one call is required to retrieve the entire request,HttpReceiveHttpRequest or can be called with RequestID set to the value returned in the RequestId member of theHTTP_REQUEST structure pointed to by pRequestBuffer. + + A parameter that can be one of the following values. + + + Value + Meaning + + + + + + + 0 (zero) + + + + + Only the request headers are retrieved; the entity body is not copied. + + + + + + + HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY + + + + + The available entity body is copied along with the request headers. The pEntityChunks member of the HTTP_REQUEST structure points to the entity body. + + + + + + + HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY + + + + + All of the entity bodies are copied along with the request headers. The pEntityChunks member of the HTTP_REQUEST structure points to the entity body. + + + + A pointer to a buffer into which the function copies anHTTP_REQUEST structure and entity body for the HTTP request. HTTP_REQUEST.RequestId contains the identifier for this HTTP request, which the application can use in subsequent calls ,, or. + Size, in bytes, of the pRequestBuffer buffer. + + Optional. A pointer to a variable that receives the size, in bytes, of the entity body, or of the remaining part of the entity body. + When making an asynchronous call using pOverlapped, set pBytesReceived to NULL. Otherwise, when pOverlapped is set to NULL, pBytesReceived must contain a valid memory address, and not be set to NULL. + + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until a request has arrived in the specified queue and some or all of it has been retrieved, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see
Synchronization and Overlapped Input and Output.
+ + + If the function succeeds, the return value is NO_ERROR. + If the function is being used asynchronously, a return value of ERROR_IO_PENDING indicates that the next request is not yet ready and will be retrieved later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_NOACCESS + + + + + One or more of the supplied parameters points to an invalid or unaligned memory buffer. The pRequestBuffer parameter must point to a valid memory buffer with a memory alignment equal or greater to the memory alignment requirement for an HTTP_REQUEST structure. + + + + + + + ERROR_MORE_DATA + + + + + The value of RequestBufferLength is greater than or equal to the size of the request header received, but is not as large as the combined size of the request structure and entity body. The buffer size required to read the remaining part of the entity body is returned in the pBytesReceived parameter if this is non-NULL and if the call is synchronous. Call the function again with a large enough buffer to retrieve all data. + + + + + + + ERROR_HANDLE_EOF + + + + + The specified request has already been completely retrieved; in this case, the value pointed to by pBytesReceived is not meaningful, and pRequestBuffer should not be examined. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + +
+ + TheHttpReceiveRequestEntityBody function receives additional entity body data for a specified HTTP request. + + The handle to the request queue from which to retrieve the specified entity body data. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + The identifier of the HTTP request that contains the retrieved entity body. This value is returned in the RequestId member of theHTTP_REQUEST structure by a call to the function. This value cannot be HTTP_NULL_ID. + + This parameter can be the following flag value. + + Windows Server 2003 with SP1 and Windows XP with SP2:  This parameter is reserved and must be zero. + + + Value + Meaning + + + + + + + HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER + + + + + Specifies that the buffer will be filled with one or more entity bodies, unless there are no remaining entity bodies to copy. + + + + A pointer to a buffer that receives entity-body data. + The size, in bytes, of the buffer pointed to by the pBuffer parameter. + + Optional. A pointer to a variables that receives the size, in bytes, of the entity body data returned in the pBuffer buffer. + When making an asynchronous call using pOverlapped, set pBytesReceived to NULL. Otherwise, when pOverlapped is set to NULL, pBytesReceived must contain a valid memory address, and not be set to NULL. + + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until the entity-body data has been retrieved, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the next request is not yet ready and is retrieved later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters are in an unusable form. + + + + + + + ERROR_HANDLE_EOF + + + + + The specified entity body has already been completely retrieved; in this case, the value pointed to by pBytesReceived is not meaningful, and pBuffer should not be examined. + + + + + + + ERROR_DLL_INIT_FAILED + + + + + The calling application did not call before calling this function. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + TheHttpRemoveUrl function causes the system to stop routing requests that match a specifiedUrlPrefix string to a specified request queue. + Starting with HTTP Server API Version 2.0, applications should call to register a URL; HttpRemoveUrl should not be used. + + + The handle to the request queue from which the URL registration is to be removed. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + A pointer to aUrlPrefix string registered to the specified request queue. This string must be identical to the one passed to to register the UrlPrefix; even a nomenclature change in an IPv6 address is not accepted. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_ACCESS_DENIED + + + + + The calling application does not have permission to remove the URL. + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_NOT_ENOUGH_MEMORY + + + + + Insufficient resources to complete the operation. + + + + + + + ERROR_FILE_NOT_FOUND + + + + + The specified UrlPrefix could not be found in the registration database. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + The HttpRemoveUrlFromUrlGroup function removes the specified URL from the group identified by the URL Group ID. This function removes one, or all, of the URLs from the group. + This function replaces the HTTP version 1.0 function. + + The ID of the URL group from which the URL specified in pFullyQualifiedUrl is removed. + + A pointer to a Unicode string that contains a properly formed UrlPrefix String that identifies the URL to be removed. + When HTTP_URL_FLAG_REMOVE_ALL is passed in the Flags parameter, all of the existing URL registrations for the URL Group identified in UrlGroupId are removed from the group. In this case, pFullyQualifiedUrl must be NULL. + + + The URL flags qualifying the URL that is removed. This can be one of the following flags: + + + URL Flag + Meaning + + + + + + + HTTP_URL_FLAG_REMOVE_ALL + + + + + Removes all of the URLs currently registered with the URL Group. + + + + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The URL Group does not exist.The Flags parameter contains an invalid combination of flags.The HTTP_URL_FLAG_REMOVE_ALL flag was set and the pFullyQualifiedUrl parameter was not set to NULL.The application does not have permission to remove URLs from the Group. Only the application that created the URL Group can remove URLs. + + + + + + + ERROR_ACCESS_DENIED + + + + + The calling process does not have permission to deregister the URL. + + + + + + + ERROR_FILE_NOT_FOUND + + + + + The specified URL is not registered with the URL Group. + + + + + + TheHttpSendHttpResponse function sends an HTTP response to the specified HTTP request. + + A handle to the request queue from which the specified request was retrieved. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + An identifier of the HTTP request to which this response corresponds. This value is returned in the RequestId member of theHTTP_REQUEST structure by a call to the function. This value cannot be HTTP_NULL_ID. + + This parameter can be a combination of some of the following flag values. Those that are mutually exclusive are marked accordingly. + + + Flags + Meaning + + + + + + + HTTP_SEND_RESPONSE_FLAG_DISCONNECT + + + + + The network connection should be disconnected after sending this response, overriding any persistent connection features associated with the version of HTTP in use.
Caution  Combining HTTP_SEND_RESPONSE_FLAG_DISCONNECT and HTTP_SEND_RESPONSE_FLAG_MORE_DATA in a single call to the HttpSendHttpResponse function produces undefined results.
+
+ + + + + + HTTP_SEND_RESPONSE_FLAG_MORE_DATA + + + + + Additional entity body data for this response is sent by the application through one or more subsequent calls to . The last call sending entity-body data then sets this flag to zero.
Caution  Combining HTTP_SEND_RESPONSE_FLAG_DISCONNECT and HTTP_SEND_RESPONSE_FLAG_MORE_DATA in a single call to the HttpSendHttpResponse function produces undefined results.
+
+ + + + + + HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA + + + + + This flag enables buffering of data in the kernel on a per-response basis.It should be used by an application doing synchronous I/O or by an application doing asynchronous I/O with no more than one outstanding send at a time.Applications that use asynchronous I/O and that may have more than one send outstanding at a time should not use this flag.When this flag is set, it should also be used consistently in calls to the function.Windows Server 2003:  This flag is not supported. This flag is new for Windows Server 2003 with SP1. + + + + + + + HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING + + + + + Enables the TCP nagling algorithm for this send only.Windows Server 2003 with SP1 and Windows XP with SP2:  This flag is not supported. + + + + + + + HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES + + + + + Specifies that for a range request, the full response content is passed and the caller wants the HTTP API to process ranges appropriately.
Note  This flag is only supported for responses to HTTP GET requests and offers a limited subset of functionality. Applications that require full range processing should perform it in user mode and not rely on HTTP.sys. Its usage is discouraged.
Windows Server 2008 R2 and Windows 7 or later.Note  This flag is supported.
+
+ + + + + + HTTP_SEND_RESPONSE_FLAG_OPAQUE + + + + + Specifies that the request/response is not HTTP compliant and all subsequent bytes should be treated as entity-body. Applications specify this flag when it is accepting a Web Socket upgrade request and informing HTTP.sys to treat the connection data as opaque data.This flag is only allowed when the StatusCode member of pHttpResponse is 101, switching protocols. HttpSendHttpResponse returns ERROR_INVALID_PARAMETER for all other HTTP response types if this flag is used.Windows 8 and later:  This flag is supported. + +
+ + A pointer to anHTTP_RESPONSE structure that defines the HTTP response. + + A pointer to the structure used to cache the response. + + Windows Server 2003 with SP1 and Windows XP with SP2:  This parameter is reserved and must be NULL. + + + Optional. A pointer to a variable that receives the number, in bytes, sent if the function operates synchronously. + When making an asynchronous call using pOverlapped, set pBytesSent to NULL. Otherwise, when pOverlapped is set to NULL, pBytesSent must contain a valid memory address and not be set to NULL. + + This parameter is reserved and must be NULL. + This parameter is reserved and must be zero. + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set to NULL. + A synchronous call blocks until all response data specified in the pHttpResponse parameter is sent, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + A pointer to the structure used to log the response. Pass a pointer to the structure and cast it to PHTTP_LOG_DATA. + Be aware that even when logging is enabled on a URL Group, or server session, the response will not be logged unless the application supplies the log fields data structure. + + Windows Server 2003 and Windows XP with SP2:  This parameter is reserved and must be NULL. + + Windows Vista and Windows Server 2008:  This parameter is new for Windows Vista, and Windows Server 2008 + + + If the function succeeds, the function returns NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the next request is not yet ready and is retrieved later through normal overlapped I/O completion mechanisms. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + +
+ + TheHttpSendResponseEntityBody function sends entity-body data associated with an HTTP response. + + A handle to the request queue from which the specified request was retrieved. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + An identifier of the HTTP request to which this response corresponds. This value is returned in the RequestId member of theHTTP_REQUEST structure by a call to the function. It cannot be HTTP_NULL_ID. + + A parameter that can include one of the following mutually exclusive flag values. + + + Flags + Meaning + + + + + + + HTTP_SEND_RESPONSE_FLAG_DISCONNECT + + + + + The network connection should be disconnected after sending this response, overriding any persistent connection features associated with the version of HTTP in use. Applications should use this flag to indicate the end of the entity in cases where neither content length nor chunked encoding is used. + + + + + + + HTTP_SEND_RESPONSE_FLAG_MORE_DATA + + + + + Additional entity body data for this response is sent by the application through one or more subsequent calls to HttpSendResponseEntityBody. The last call then sets this flag to zero. + + + + + + + HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA + + + + + This flag enables buffering of data in the kernel on a per-response basis.It should be used by an application doing synchronous I/O, or by a an application doing asynchronous I/O with no more than one send outstanding at a time.Applications using asynchronous I/O which may have more than one send outstanding at a time should not use this flag.When this flag is set, it should be used consistently in calls to the function as well.Windows Server 2003:  This flag is not supported. This flag is new for Windows Server 2003 with SP1. + + + + + + + HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING + + + + + Enables the TCP nagling algorithm for this send only.Windows Vista and later:  This flag is not supported. + + + + + + + HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES + + + + + Specifies that for a range request, the full response content is passed and the caller wants the HTTP API to process ranges appropriately.
Note  This flag is only supported for responses to HTTP GET requests and offers a limited subset of functionality. Applications that require full range processing should perform it in user mode and not rely on HTTP.sys. It's usage is discouraged.
Windows Server 2008 R2 and Windows 7 or later.Note  This flag is supported.
+
+ + + + + + HTTP_SEND_RESPONSE_FLAG_OPAQUE + + + + + Specifies that the request/response is not HTTP compliant and all subsequent bytes should be treated as entity-body. Applications specify this flag when it is accepting a Web Socket upgrade request and informing HTTP.sys to treat the connection data as opaque data.This flag is only allowed when the StatusCode member of pHttpResponse is 101, switching protocols. HttpSendResponseEntityBody returns ERROR_INVALID_PARAMETER for all other HTTP response types if this flag is used.Windows 8 and later:  This flag is supported. + +
 
Caution  Combining both flags in a single call to the function produces undefined results.
+ A number of structures in the array pointed to by pEntityChunks. This count cannot exceed 9999. + A pointer to an array of structures to be sent as entity-body data. + + Optional. A pointer to a variable that receives the number, in bytes, sent if the function operates synchronously. + When making an asynchronous call using pOverlapped, set pBytesSent to NULL. Otherwise, when pOverlapped is set to NULL, pBytesSent must contain a valid memory address, and not be set to NULL. + + This parameter is reserved and must be NULL. + This parameter is reserved and must be zero. + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until all response data specified in the pEntityChunks parameter is sent, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + A pointer to the structure used to log the response. Pass a pointer to the structure and cast it to PHTTP_LOG_DATA. + Be aware that even when logging is enabled on a URL Group, or server session, the response will not be logged unless the application supplies the log fields data structure. + + Windows Server 2003 and Windows XP with SP2:  This parameter is reserved and must be NULL. + + Windows Vista and Windows Server 2008:  This parameter is new for Windows Vista, and Windows Server 2008 + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the next request is not yet ready and is retrieved later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_BAD_COMMAND + + + + + There is a call pending to or having the same RequestId. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + +
+ + The HttpSetRequestProperty function sets a new property or modifies an existing property on the specified request. + The handle to the request queue on which the request was received. A request queue is created and its handle returned by a call to the function. + The opaque ID of the request. This ID is located in the RequestId member of the HTTP_REQUEST structure returned by . + + A member of the enumeration describing the property type that is set. This must be one of the following: + | Property | Meaning | | HttpRequestPropertyStreamError | Sets a stream error on the request. | + + + A pointer to the buffer that contains the property information. + It must point to one of the following property information types based on the property that is set. + | Property | Configuration Type | | HttpRequestPropertyStreamError | structure | + + The length, in bytes, of the buffer pointed to by the Input parameter. + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until the operation is complete, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, it returns ERROR_SUCCESS. + If the function fails, it returns a system error code. + + + + TheHttpSetServiceConfiguration function creates and sets a configuration record for the HTTP Server API configuration store. The call fails if the specified record already exists. To change a given configuration record, delete it and then recreate it with a different value. + Reserved. Must be zero. + + Type of configuration record to be set. This parameter can be one of the following values from the enumeration. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + Sets a record in the IP Listen List. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + Sets a specified SSL certificate record. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + Sets a URL reservation record. + + + + + + + HttpServiceConfigTimeout + + + + + Sets a specified HTTP Server API wide connection time-out.Windows Vista and later:  This enumeration value is supported. + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + Sets a specified SSL Server Name Indication (SNI) certificate record.Windows 8 and later:  This enumeration value is supported. + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + Sets the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. The port is specified by the KeyDesc member of the structure that you pass to the pConfigInformation parameter.Windows 8 and later:  This enumeration value is supported. + + + + + A pointer to a buffer that contains the appropriate data to specify the type of record to be set. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigIPListenList + + + + + + structure. + + + + + + + HttpServiceConfigSSLCertInfo + + + + + + structure. + + + + + + + HttpServiceConfigUrlAclInfo + + + + + + structure. + + + + + + + HttpServiceConfigTimeout + + + + + + + structure. + + Windows Vista and later:  This structure is supported. + + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + + + structure. The hostname will be "*" when the SSL central certificate store is queried and wildcard bindings are used, and a host name for regular SNI. + + Windows 8 and later:  This structure is supported. + + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + + + structure. + + Windows 8 and later:  This structure is supported. + + + + + Size, in bytes, of the pConfigInformation buffer. + This parameter is reserved and must be NULL. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_ALREADY_EXISTS + + + + + The specified record already exists, and must be deleted in order for its value to be re-set. + + + + + + + ERROR_INSUFFICIENT_BUFFER + + + + + The buffer size specified in the ConfigInformationLength parameter is insufficient. + + + + + + + ERROR_INVALID_HANDLE + + + + + The ServiceHandle parameter is invalid. + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_NO_SUCH_LOGON_SESSION + + + + + The SSL Certificate used is invalid. This can occur only if the HttpServiceConfigSSLCertInfo parameter is used. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + The HttpShutdownRequestQueue function stops queuing requests for the specified request queue process. Outstanding calls to are canceled. + The handle to the request queue that is shut down. A request queue is created and its handle returned by a call to the function. + + If the function succeeds, it returns NO_ERROR + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The ReqQueueHandle parameter does not contain a valid request queue.The application does not have permission to shut down the request queue. + + + + + + TheHttpTerminate function cleans up resources used by the HTTP Server API to process calls by an application. An application should callHttpTerminate once for every time it called, with matching flag settings. + + Termination options. This parameter can be one or more of the following values. + + + Value + Meaning + + + + + + + HTTP_INITIALIZE_CONFIG + + + + + Release all resources used by applications that modify the HTTP configuration. + + + + + + + HTTP_INITIALIZE_SERVER + + + + + Release all resources used by server applications. + + + + This parameter is reserved and must be NULL. + + If the function succeeds, the return value is NO_ERROR. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + Updates atomically a service configuration parameter that specifies a Transport Layer Security (TLS) certificate in a configuration record within the HTTP Server API configuration store. + Reserved and must be NULL. + + The type of configuration record to update. This parameter can be one of the following values from the enumeration. + + + + ConfigId value + Meaning + + + + + + + HttpServiceConfigSSLCertInfo + + + + + Updates a specified SSL certificate record. + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + Updates a specified SSL Server Name Indication (SNI) certificate record. + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + Updates the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a TLS handshake. The port is specified by the KeyDesc member of the structure that you pass to the pConfigInfo parameter. + + + + + A pointer to a buffer that contains the appropriate data to specify the type of record to update. The following table shows the type of data the buffer contains for the different possible values of the ConfigId parameter. + + + + ConfigId value + Type of data in the pConfigInfo buffer + + + + + + + HttpServiceConfigSSLCertInfo + + + + + + structure. + + + + + + + HttpServiceConfigSslSniCertInfo + + + + + + structure. The hostname will be "*" when the SSL central certificate store is queried and wildcard bindings are used, and a host name for regular SNI. + + + + + + + + HttpServiceConfigSslCcsCertInfo + + + + + + + structure. This structure is used to add the CCS store on the specified port, as well as to delete, retrieve, or update an existing SSL CCS record. + + + + The size, in bytes, of the ConfigInfo buffer. + Reserved and must be NULL. + + If the function succeeds, the return value is ERROR_SUCCESS. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_FILE_NOT_FOUND + + + + + The specified record does not exist. + + + + + + + ERROR_INSUFFICIENT_BUFFER + + + + + The buffer size specified in the ConfigInfoLength parameter is insufficient. + + + + + + + ERROR_INVALID_HANDLE + + + + + The ServiceHandle parameter is invalid. + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + ERROR_NO_SUCH_LOGON_SESSION + + + + + The SSL Certificate used is invalid. This can occur only if the HttpServiceConfigSSLCertInfo parameter is used. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + The HttpWaitForDemandStart function waits for the arrival of a new request that can be served by a new request queue process. + A handle to the request queue on which demand start is registered. A request queue is created and its handle returned by a call to the function. + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until a request has arrived in the specified queue, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For more information about using structures for synchronization, see
Synchronization and Overlapped Input and Output.
+ + + If the function succeeds, it returns NO_ERROR. + If the function fails, it returns one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + The ReqQueueHandle parameter does not contain a valid request queue. + + + + + + + ERROR_INVALID_ID_AUTHORITY + + + + + The calling process is not the controller process for this request queue. + + + + + + + ERROR_INVALID_HANDLE + + + + + The calling process has already initiated a shutdown on the request queue or has closed the request queue handle. + + + + + + + ERROR_ALREADY_EXISTS + + + + + A demand start registration already exists for the request queue. + + + +
+ + TheHttpWaitForDisconnect function notifies the application when the connection to an HTTP client is broken for any reason. + + A handle to the request queue that handles requests from the specified connection. A request queue is created and its handle returned by a call to the function. + + Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the function. + + Identifier for the connection to the client computer. This value is returned in the ConnectionID member of theHTTP_REQUEST structure by a call to the function. + + For asynchronous calls, set pOverlapped to point to an structure; for synchronous calls, set it to NULL. + A synchronous call blocks until the connection is broken, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses or I/O completion ports to determine when the operation is completed. For information about using structures for synchronization, see Synchronization and Overlapped Input and Output. + + + If the function succeeds, the return value is NO_ERROR. + If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the next request is not yet ready and is retrieved later through normal overlapped I/O completion mechanisms. + If the function fails, the return value is one of the following error codes. + + + Value + Meaning + + + + + + + ERROR_INVALID_PARAMETER + + + + + One or more of the supplied parameters is in an unusable form. + + + + + + + Other + + + + + A system error code defined in WinError.h. + + + + + + + This function is an extension to .
Note  Calling this API directly in your code is not recommended. Call instead.
+
+
+ + TheHTTP_EQUAL_VERSION macro returns a non-zero value if an structure is equal to a specified major/minor version combination, or zero otherwise. + The structure to be examined. + A major portion of the version to be compared. + A minor portion of the version to be compared. + + + TheHTTP_GREATER_EQUAL_VERSION macro returns a non-zero value if an structure is greater than or equal to a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + TheHTTP_GREATER_VERSION macro returns a non-zero value if an structure is greater than a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HTTP_IS_NULL_ID macro determines if the HTTP_OPAQUE_ID is NULL. + The parameter determined to be NULL. + + + TheHTTP_LESS_EQUAL_VERSION macro returns a non-zero value if an structure is less than or equal to a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + TheHTTP_LESS_VERSION macro returns a non-zero value if an structure is less than a specified major/minor version combination, or zero otherwise. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + TheHTTP_NOT_EQUAL_VERSION macro returns a non-zero value if an structure is greater or less than a specified major/minor version combination, or zero if it is equal. + The structure to be examined. + The major portion of the version to be compared. + The minor portion of the version to be compared. + + + The HTTP_SET_NULL_ID macro sets the HTTP_OPAQUE_ID to NULL. + The identifier that is set to NULL. + + + TheHTTP_SET_VERSION macro sets a specified structure to a specified major/minor version combination. + The structure to be set. + The major portion of the version to be used in the structure. + The minor portion of the version to be used in the structure. + +
\ No newline at end of file diff --git a/sources/Interop/Windows/Windows/um/httpserv/CACHE_OPERATION.cs b/sources/Interop/Windows/Windows/um/httpserv/CACHE_OPERATION.cs new file mode 100644 index 0000000000..52876fe4cb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/CACHE_OPERATION.cs @@ -0,0 +1,25 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum CACHE_OPERATION +{ + /// + CACHE_OPERATION_RETRIEVE, + + /// + CACHE_OPERATION_ADD, + + /// + CACHE_OPERATION_DELETE, + + /// + CACHE_OPERATION_FLUSH_PREFIX, + + /// + CACHE_OPERATION_ENUM, +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/CGlobalModule.cs b/sources/Interop/Windows/Windows/um/httpserv/CGlobalModule.cs new file mode 100644 index 0000000000..7128a42872 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/CGlobalModule.cs @@ -0,0 +1,259 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct CGlobalModule : CGlobalModule.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalStopListening(IGlobalStopListeningProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalCacheCleanup() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((CGlobalModule*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalCacheOperation(ICacheProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalHealthCheck() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((CGlobalModule*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalConfigurationChange(IGlobalConfigurationChangeProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalFileChange(IGlobalFileChangeProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalPreBeginRequest(IPreBeginRequestProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationStart([NativeTypeName("IHttpApplicationStartProvider *")] IHttpApplicationProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationResolveModules(IHttpApplicationResolveModulesProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationStop([NativeTypeName("IHttpApplicationStopProvider *")] IHttpApplicationProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalRSCAQuery(IGlobalRSCAQueryProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalTraceEvent(IGlobalTraceEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalCustomNotification(ICustomNotificationProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void Terminate() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((CGlobalModule*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalThreadCleanup(IGlobalThreadCleanupProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationPreload(IGlobalApplicationPreloadProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((CGlobalModule*)Unsafe.AsPointer(ref this), pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public GLOBAL_NOTIFICATION_STATUS OnSuspendProcess(IGlobalSuspendProcessCallback** pCallback) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((CGlobalModule*)Unsafe.AsPointer(ref this), pCallback); + } + + public interface Interface + { + [VtblIndex(0)] + GLOBAL_NOTIFICATION_STATUS OnGlobalStopListening(IGlobalStopListeningProvider* pProvider); + + [VtblIndex(1)] + GLOBAL_NOTIFICATION_STATUS OnGlobalCacheCleanup(); + + [VtblIndex(2)] + GLOBAL_NOTIFICATION_STATUS OnGlobalCacheOperation(ICacheProvider* pProvider); + + [VtblIndex(3)] + GLOBAL_NOTIFICATION_STATUS OnGlobalHealthCheck(); + + [VtblIndex(4)] + GLOBAL_NOTIFICATION_STATUS OnGlobalConfigurationChange(IGlobalConfigurationChangeProvider* pProvider); + + [VtblIndex(5)] + GLOBAL_NOTIFICATION_STATUS OnGlobalFileChange(IGlobalFileChangeProvider* pProvider); + + [VtblIndex(6)] + GLOBAL_NOTIFICATION_STATUS OnGlobalPreBeginRequest(IPreBeginRequestProvider* pProvider); + + [VtblIndex(7)] + GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationStart([NativeTypeName("IHttpApplicationStartProvider *")] IHttpApplicationProvider* pProvider); + + [VtblIndex(8)] + GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationResolveModules(IHttpApplicationResolveModulesProvider* pProvider); + + [VtblIndex(9)] + GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationStop([NativeTypeName("IHttpApplicationStopProvider *")] IHttpApplicationProvider* pProvider); + + [VtblIndex(10)] + GLOBAL_NOTIFICATION_STATUS OnGlobalRSCAQuery(IGlobalRSCAQueryProvider* pProvider); + + [VtblIndex(11)] + GLOBAL_NOTIFICATION_STATUS OnGlobalTraceEvent(IGlobalTraceEventProvider* pProvider); + + [VtblIndex(12)] + GLOBAL_NOTIFICATION_STATUS OnGlobalCustomNotification(ICustomNotificationProvider* pProvider); + + [VtblIndex(13)] + void Terminate(); + + [VtblIndex(14)] + GLOBAL_NOTIFICATION_STATUS OnGlobalThreadCleanup(IGlobalThreadCleanupProvider* pProvider); + + [VtblIndex(15)] + GLOBAL_NOTIFICATION_STATUS OnGlobalApplicationPreload(IGlobalApplicationPreloadProvider* pProvider); + + [VtblIndex(16)] + GLOBAL_NOTIFICATION_STATUS OnSuspendProcess(IGlobalSuspendProcessCallback** pCallback); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalStopListeningProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalStopListening; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS ()")] + public delegate* unmanaged[MemberFunction] OnGlobalCacheCleanup; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (ICacheProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalCacheOperation; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS ()")] + public delegate* unmanaged[MemberFunction] OnGlobalHealthCheck; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalConfigurationChangeProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalConfigurationChange; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalFileChangeProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalFileChange; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IPreBeginRequestProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalPreBeginRequest; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IHttpApplicationStartProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalApplicationStart; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IHttpApplicationResolveModulesProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalApplicationResolveModules; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IHttpApplicationStopProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalApplicationStop; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalRSCAQueryProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalRSCAQuery; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalTraceEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalTraceEvent; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (ICustomNotificationProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalCustomNotification; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Terminate; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalThreadCleanupProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalThreadCleanup; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalApplicationPreloadProvider *)")] + public delegate* unmanaged[MemberFunction] OnGlobalApplicationPreload; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (IGlobalSuspendProcessCallback **)")] + public delegate* unmanaged[MemberFunction] OnSuspendProcess; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/CHttpModule.cs b/sources/Interop/Windows/Windows/um/httpserv/CHttpModule.cs new file mode 100644 index 0000000000..bb14fdd699 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/CHttpModule.cs @@ -0,0 +1,459 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct CHttpModule : CHttpModule.Interface +{ + public void** lpVtbl; + + public CHttpModule() + { + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public REQUEST_NOTIFICATION_STATUS OnBeginRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public REQUEST_NOTIFICATION_STATUS OnPostBeginRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public REQUEST_NOTIFICATION_STATUS OnAuthenticateRequest(IHttpContext* pHttpContext, IAuthenticationProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public REQUEST_NOTIFICATION_STATUS OnPostAuthenticateRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public REQUEST_NOTIFICATION_STATUS OnAuthorizeRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public REQUEST_NOTIFICATION_STATUS OnPostAuthorizeRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public REQUEST_NOTIFICATION_STATUS OnResolveRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public REQUEST_NOTIFICATION_STATUS OnPostResolveRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public REQUEST_NOTIFICATION_STATUS OnMapRequestHandler(IHttpContext* pHttpContext, IMapHandlerProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public REQUEST_NOTIFICATION_STATUS OnPostMapRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public REQUEST_NOTIFICATION_STATUS OnAcquireRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public REQUEST_NOTIFICATION_STATUS OnPostAcquireRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public REQUEST_NOTIFICATION_STATUS OnPreExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public REQUEST_NOTIFICATION_STATUS OnPostPreExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public REQUEST_NOTIFICATION_STATUS OnExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public REQUEST_NOTIFICATION_STATUS OnPostExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public REQUEST_NOTIFICATION_STATUS OnReleaseRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public REQUEST_NOTIFICATION_STATUS OnPostReleaseRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public REQUEST_NOTIFICATION_STATUS OnUpdateRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public REQUEST_NOTIFICATION_STATUS OnPostUpdateRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public REQUEST_NOTIFICATION_STATUS OnLogRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public REQUEST_NOTIFICATION_STATUS OnPostLogRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public REQUEST_NOTIFICATION_STATUS OnEndRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public REQUEST_NOTIFICATION_STATUS OnPostEndRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public REQUEST_NOTIFICATION_STATUS OnSendResponse(IHttpContext* pHttpContext, ISendResponseProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public REQUEST_NOTIFICATION_STATUS OnMapPath(IHttpContext* pHttpContext, IMapPathProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public REQUEST_NOTIFICATION_STATUS OnReadEntity(IHttpContext* pHttpContext, IReadEntityProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public REQUEST_NOTIFICATION_STATUS OnCustomRequestNotification(IHttpContext* pHttpContext, ICustomNotificationProvider* pProvider) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, pProvider); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public REQUEST_NOTIFICATION_STATUS OnAsyncCompletion(IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwNotification, BOOL fPostNotification, IHttpEventProvider* pProvider, IHttpCompletionInfo* pCompletionInfo) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((CHttpModule*)Unsafe.AsPointer(ref this), pHttpContext, dwNotification, fPostNotification, pProvider, pCompletionInfo); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public void Dispose() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((CHttpModule*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public void Destructor() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((CHttpModule*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + REQUEST_NOTIFICATION_STATUS OnBeginRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(1)] + REQUEST_NOTIFICATION_STATUS OnPostBeginRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(2)] + REQUEST_NOTIFICATION_STATUS OnAuthenticateRequest(IHttpContext* pHttpContext, IAuthenticationProvider* pProvider); + + [VtblIndex(3)] + REQUEST_NOTIFICATION_STATUS OnPostAuthenticateRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(4)] + REQUEST_NOTIFICATION_STATUS OnAuthorizeRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(5)] + REQUEST_NOTIFICATION_STATUS OnPostAuthorizeRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(6)] + REQUEST_NOTIFICATION_STATUS OnResolveRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(7)] + REQUEST_NOTIFICATION_STATUS OnPostResolveRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(8)] + REQUEST_NOTIFICATION_STATUS OnMapRequestHandler(IHttpContext* pHttpContext, IMapHandlerProvider* pProvider); + + [VtblIndex(9)] + REQUEST_NOTIFICATION_STATUS OnPostMapRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(10)] + REQUEST_NOTIFICATION_STATUS OnAcquireRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(11)] + REQUEST_NOTIFICATION_STATUS OnPostAcquireRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(12)] + REQUEST_NOTIFICATION_STATUS OnPreExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(13)] + REQUEST_NOTIFICATION_STATUS OnPostPreExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(14)] + REQUEST_NOTIFICATION_STATUS OnExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(15)] + REQUEST_NOTIFICATION_STATUS OnPostExecuteRequestHandler(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(16)] + REQUEST_NOTIFICATION_STATUS OnReleaseRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(17)] + REQUEST_NOTIFICATION_STATUS OnPostReleaseRequestState(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(18)] + REQUEST_NOTIFICATION_STATUS OnUpdateRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(19)] + REQUEST_NOTIFICATION_STATUS OnPostUpdateRequestCache(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(20)] + REQUEST_NOTIFICATION_STATUS OnLogRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(21)] + REQUEST_NOTIFICATION_STATUS OnPostLogRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(22)] + REQUEST_NOTIFICATION_STATUS OnEndRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(23)] + REQUEST_NOTIFICATION_STATUS OnPostEndRequest(IHttpContext* pHttpContext, IHttpEventProvider* pProvider); + + [VtblIndex(24)] + REQUEST_NOTIFICATION_STATUS OnSendResponse(IHttpContext* pHttpContext, ISendResponseProvider* pProvider); + + [VtblIndex(25)] + REQUEST_NOTIFICATION_STATUS OnMapPath(IHttpContext* pHttpContext, IMapPathProvider* pProvider); + + [VtblIndex(26)] + REQUEST_NOTIFICATION_STATUS OnReadEntity(IHttpContext* pHttpContext, IReadEntityProvider* pProvider); + + [VtblIndex(27)] + REQUEST_NOTIFICATION_STATUS OnCustomRequestNotification(IHttpContext* pHttpContext, ICustomNotificationProvider* pProvider); + + [VtblIndex(28)] + REQUEST_NOTIFICATION_STATUS OnAsyncCompletion(IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwNotification, BOOL fPostNotification, IHttpEventProvider* pProvider, IHttpCompletionInfo* pCompletionInfo); + + [VtblIndex(29)] + void Dispose(); + + [VtblIndex(30)] + void Destructor(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnBeginRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostBeginRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IAuthenticationProvider *)")] + public delegate* unmanaged[MemberFunction] OnAuthenticateRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostAuthenticateRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnAuthorizeRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostAuthorizeRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnResolveRequestCache; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostResolveRequestCache; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IMapHandlerProvider *)")] + public delegate* unmanaged[MemberFunction] OnMapRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostMapRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnAcquireRequestState; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostAcquireRequestState; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPreExecuteRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostPreExecuteRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnExecuteRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostExecuteRequestHandler; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnReleaseRequestState; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostReleaseRequestState; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnUpdateRequestCache; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostUpdateRequestCache; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnLogRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostLogRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnEndRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IHttpEventProvider *)")] + public delegate* unmanaged[MemberFunction] OnPostEndRequest; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, ISendResponseProvider *)")] + public delegate* unmanaged[MemberFunction] OnSendResponse; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IMapPathProvider *)")] + public delegate* unmanaged[MemberFunction] OnMapPath; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, IReadEntityProvider *)")] + public delegate* unmanaged[MemberFunction] OnReadEntity; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, ICustomNotificationProvider *)")] + public delegate* unmanaged[MemberFunction] OnCustomRequestNotification; + + [NativeTypeName("REQUEST_NOTIFICATION_STATUS (IHttpContext *, DWORD, BOOL, IHttpEventProvider *, IHttpCompletionInfo *)")] + public delegate* unmanaged[MemberFunction] OnAsyncCompletion; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Dispose; + + [NativeTypeName("void () noexcept")] + public delegate* unmanaged[MemberFunction] Destructor; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/GL.cs b/sources/Interop/Windows/Windows/um/httpserv/GL.cs new file mode 100644 index 0000000000..aa73dbecd3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/GL.cs @@ -0,0 +1,57 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +public static partial class GL +{ + [NativeTypeName("#define GL_STOP_LISTENING 0x00000002")] + public const int GL_STOP_LISTENING = 0x00000002; + + [NativeTypeName("#define GL_CACHE_CLEANUP 0x00000004")] + public const int GL_CACHE_CLEANUP = 0x00000004; + + [NativeTypeName("#define GL_CACHE_OPERATION 0x00000010")] + public const int GL_CACHE_OPERATION = 0x00000010; + + [NativeTypeName("#define GL_HEALTH_CHECK 0x00000020")] + public const int GL_HEALTH_CHECK = 0x00000020; + + [NativeTypeName("#define GL_CONFIGURATION_CHANGE 0x00000040")] + public const int GL_CONFIGURATION_CHANGE = 0x00000040; + + [NativeTypeName("#define GL_FILE_CHANGE 0x00000080")] + public const int GL_FILE_CHANGE = 0x00000080; + + [NativeTypeName("#define GL_PRE_BEGIN_REQUEST 0x00000100")] + public const int GL_PRE_BEGIN_REQUEST = 0x00000100; + + [NativeTypeName("#define GL_APPLICATION_START 0x00000200")] + public const int GL_APPLICATION_START = 0x00000200; + + [NativeTypeName("#define GL_APPLICATION_RESOLVE_MODULES 0x00000400")] + public const int GL_APPLICATION_RESOLVE_MODULES = 0x00000400; + + [NativeTypeName("#define GL_APPLICATION_STOP 0x00000800")] + public const int GL_APPLICATION_STOP = 0x00000800; + + [NativeTypeName("#define GL_RSCA_QUERY 0x00001000")] + public const int GL_RSCA_QUERY = 0x00001000; + + [NativeTypeName("#define GL_TRACE_EVENT 0x00002000")] + public const int GL_TRACE_EVENT = 0x00002000; + + [NativeTypeName("#define GL_CUSTOM_NOTIFICATION 0x00004000")] + public const int GL_CUSTOM_NOTIFICATION = 0x00004000; + + [NativeTypeName("#define GL_THREAD_CLEANUP 0x00008000")] + public const int GL_THREAD_CLEANUP = 0x00008000; + + [NativeTypeName("#define GL_APPLICATION_PRELOAD 0x00010000")] + public const int GL_APPLICATION_PRELOAD = 0x00010000; + + [NativeTypeName("#define GL_SUSPEND_PROCESS 0x00020000")] + public const int GL_SUSPEND_PROCESS = 0x00020000; +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/GLOBAL_NOTIFICATION_STATUS.cs b/sources/Interop/Windows/Windows/um/httpserv/GLOBAL_NOTIFICATION_STATUS.cs new file mode 100644 index 0000000000..8e9128be9b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/GLOBAL_NOTIFICATION_STATUS.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum GLOBAL_NOTIFICATION_STATUS +{ + /// + GL_NOTIFICATION_CONTINUE, + + /// + GL_NOTIFICATION_HANDLED, +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/HTTP.cs b/sources/Interop/Windows/Windows/um/httpserv/HTTP.cs new file mode 100644 index 0000000000..8df677442a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/HTTP.cs @@ -0,0 +1,20 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop.Windows; + +public static partial class HTTP +{ + [NativeTypeName("#define HTTP_USER_VARIABLE_SID \"SID\"")] + public static ReadOnlySpan HTTP_USER_VARIABLE_SID => "SID"u8; + + [NativeTypeName("#define HTTP_USER_VARIABLE_CTXT_HANDLE \"CtxtHandle\"")] + public static ReadOnlySpan HTTP_USER_VARIABLE_CTXT_HANDLE => "CtxtHandle"u8; + + [NativeTypeName("#define HTTP_USER_VARIABLE_CRED_HANDLE \"CredHandle\"")] + public static ReadOnlySpan HTTP_USER_VARIABLE_CRED_HANDLE => "CredHandle"u8; +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/HTTP_CONTEXT_INTERFACE_VERSION.cs b/sources/Interop/Windows/Windows/um/httpserv/HTTP_CONTEXT_INTERFACE_VERSION.cs new file mode 100644 index 0000000000..d464f00f8e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/HTTP_CONTEXT_INTERFACE_VERSION.cs @@ -0,0 +1,11 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_CONTEXT_INTERFACE_VERSION +{ +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/HTTP_SERVER_INTERFACE_VERSION.cs b/sources/Interop/Windows/Windows/um/httpserv/HTTP_SERVER_INTERFACE_VERSION.cs new file mode 100644 index 0000000000..28912aac64 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/HTTP_SERVER_INTERFACE_VERSION.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_SERVER_INTERFACE_VERSION +{ + /// + HTTP_SERVER_INTERFACE_V2, + + /// + HTTP_SERVER_INTERFACE_V3, +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IAuthenticationProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IAuthenticationProvider.cs new file mode 100644 index 0000000000..ba8f9e9162 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IAuthenticationProvider.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("304D51D0-0307-45ED-83FD-DD3FC032FDFC")] +[NativeTypeName("struct IAuthenticationProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IAuthenticationProvider : IAuthenticationProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IAuthenticationProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IAuthenticationProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void SetUser(IHttpUser* pUser) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IAuthenticationProvider*)Unsafe.AsPointer(ref this), pUser); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + void SetUser(IHttpUser* pUser); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("void (IHttpUser *)")] + public delegate* unmanaged[MemberFunction] SetUser; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/ICacheProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/ICacheProvider.cs new file mode 100644 index 0000000000..a694b13337 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/ICacheProvider.cs @@ -0,0 +1,110 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("58925FB9-7C5E-4684-833B-4A04E1286690")] +[NativeTypeName("struct ICacheProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct ICacheProvider : ICacheProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ICacheProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ICacheProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public CACHE_OPERATION GetCacheOperation() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ICacheProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpCacheKey* GetCacheKey() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((ICacheProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpCacheSpecificData* GetCacheRecord() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((ICacheProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void SetCacheRecord(IHttpCacheSpecificData* pCacheRecord) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((ICacheProvider*)Unsafe.AsPointer(ref this), pCacheRecord); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((ICacheProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + CACHE_OPERATION GetCacheOperation(); + + [VtblIndex(2)] + IHttpCacheKey* GetCacheKey(); + + [VtblIndex(3)] + IHttpCacheSpecificData* GetCacheRecord(); + + [VtblIndex(4)] + void SetCacheRecord(IHttpCacheSpecificData* pCacheRecord); + + [VtblIndex(5)] + IHttpTraceContext* GetTraceContext(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("CACHE_OPERATION () const")] + public delegate* unmanaged[MemberFunction] GetCacheOperation; + + [NativeTypeName("IHttpCacheKey *() const")] + public delegate* unmanaged[MemberFunction] GetCacheKey; + + [NativeTypeName("IHttpCacheSpecificData *() const")] + public delegate* unmanaged[MemberFunction] GetCacheRecord; + + [NativeTypeName("void (IHttpCacheSpecificData *)")] + public delegate* unmanaged[MemberFunction] SetCacheRecord; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/ICustomNotificationProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/ICustomNotificationProvider.cs new file mode 100644 index 0000000000..58d6825167 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/ICustomNotificationProvider.cs @@ -0,0 +1,56 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("671E6D34-9380-4DF4-B453-91129DF02B24")] +[NativeTypeName("struct ICustomNotificationProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct ICustomNotificationProvider : ICustomNotificationProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ICustomNotificationProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ICustomNotificationProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* QueryNotificationType() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ICustomNotificationProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* QueryNotificationType(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("PCWSTR ()")] + public delegate* unmanaged[MemberFunction] QueryNotificationType; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainer.cs b/sources/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainer.cs new file mode 100644 index 0000000000..ac5153b925 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainer.cs @@ -0,0 +1,65 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("2AE49359-95DD-4E48-AE20-C0CB9D0BC03A")] +[NativeTypeName("struct IDispensedHttpModuleContextContainer : IHttpModuleContextContainer")] +[NativeInheritance("IHttpModuleContextContainer")] +public unsafe partial struct IDispensedHttpModuleContextContainer : IDispensedHttpModuleContextContainer.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IDispensedHttpModuleContextContainer)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpStoredContext* GetModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IDispensedHttpModuleContextContainer*)Unsafe.AsPointer(ref this), moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetModuleContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IDispensedHttpModuleContextContainer*)Unsafe.AsPointer(ref this), ppStoredContext, moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void ReleaseContainer() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IDispensedHttpModuleContextContainer*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpModuleContextContainer.Interface + { + [VtblIndex(2)] + void ReleaseContainer(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpStoredContext *(HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] GetModuleContext; + + [NativeTypeName("HRESULT (IHttpStoredContext *, HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] SetModuleContext; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReleaseContainer; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider.cs new file mode 100644 index 0000000000..313fe8def4 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider.cs @@ -0,0 +1,68 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("2111F8D6-0C41-4FF7-BD45-5C04C7E91A73")] +[NativeTypeName("struct IGlobalApplicationPreloadProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalApplicationPreloadProvider : IGlobalApplicationPreloadProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalApplicationPreloadProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalApplicationPreloadProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT CreateContext(IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalApplicationPreloadProvider*)Unsafe.AsPointer(ref this), ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ExecuteRequest(IHttpContext* pHttpContext, IHttpUser* pHttpUser) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IGlobalApplicationPreloadProvider*)Unsafe.AsPointer(ref this), pHttpContext, pHttpUser); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + HRESULT CreateContext(IHttpContext** ppHttpContext); + + [VtblIndex(2)] + HRESULT ExecuteRequest(IHttpContext* pHttpContext, IHttpUser* pHttpUser); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("HRESULT (IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CreateContext; + + [NativeTypeName("HRESULT (IHttpContext *, IHttpUser *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2.cs new file mode 100644 index 0000000000..67cf16cb30 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2.cs @@ -0,0 +1,76 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("251DB2DD-81E7-44CE-AE02-46529F2D71EA")] +[NativeTypeName("struct IGlobalApplicationPreloadProvider2 : IGlobalApplicationPreloadProvider")] +[NativeInheritance("IGlobalApplicationPreloadProvider")] +public unsafe partial struct IGlobalApplicationPreloadProvider2 : IGlobalApplicationPreloadProvider2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalApplicationPreloadProvider2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalApplicationPreloadProvider2*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT CreateContext(IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalApplicationPreloadProvider2*)Unsafe.AsPointer(ref this), ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ExecuteRequest(IHttpContext* pHttpContext, IHttpUser* pHttpUser) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IGlobalApplicationPreloadProvider2*)Unsafe.AsPointer(ref this), pHttpContext, pHttpUser); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public BOOL IsProcessRecycled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IGlobalApplicationPreloadProvider2*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IGlobalApplicationPreloadProvider.Interface + { + [VtblIndex(3)] + BOOL IsProcessRecycled(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("HRESULT (IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CreateContext; + + [NativeTypeName("HRESULT (IHttpContext *, IHttpUser *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsProcessRecycled; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProvider.cs new file mode 100644 index 0000000000..55ad7df23e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProvider.cs @@ -0,0 +1,56 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("3405F3B4-B3D6-4B73-B5F5-4D8A3CC642CE")] +[NativeTypeName("struct IGlobalConfigurationChangeProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalConfigurationChangeProvider : IGlobalConfigurationChangeProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalConfigurationChangeProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalConfigurationChangeProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetChangePath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalConfigurationChangeProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetChangePath(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetChangePath; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProvider.cs new file mode 100644 index 0000000000..2e7582bcba --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProvider.cs @@ -0,0 +1,70 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("ECE31EE5-0486-4FB0-A875-6739A2D7DAF5")] +[NativeTypeName("struct IGlobalFileChangeProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalFileChangeProvider : IGlobalFileChangeProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalFileChangeProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalFileChangeProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetFileName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalFileChangeProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpFileMonitor* GetFileMonitor() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IGlobalFileChangeProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetFileName(); + + [VtblIndex(2)] + IHttpFileMonitor* GetFileMonitor(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetFileName; + + [NativeTypeName("IHttpFileMonitor *()")] + public delegate* unmanaged[MemberFunction] GetFileMonitor; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProvider.cs new file mode 100644 index 0000000000..fa54aa1387 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProvider.cs @@ -0,0 +1,114 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("63FDC43F-934A-4EE5-BCD8-7E7B50B75605")] +[NativeTypeName("struct IGlobalRSCAQueryProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalRSCAQueryProvider : IGlobalRSCAQueryProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalRSCAQueryProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetFunctionName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetFunctionParameters() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetOutputBuffer([NativeTypeName("DWORD")] uint cbBuffer, byte** ppbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this), cbBuffer, ppbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT ResizeOutputBuffer([NativeTypeName("DWORD")] uint cbNewBuffer, [NativeTypeName("DWORD")] uint cbBytesToCopy, byte** ppbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this), cbNewBuffer, cbBytesToCopy, ppbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void SetResult([NativeTypeName("DWORD")] uint cbData, HRESULT hr) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IGlobalRSCAQueryProvider*)Unsafe.AsPointer(ref this), cbData, hr); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetFunctionName(); + + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + char* GetFunctionParameters(); + + [VtblIndex(3)] + HRESULT GetOutputBuffer([NativeTypeName("DWORD")] uint cbBuffer, byte** ppbBuffer); + + [VtblIndex(4)] + HRESULT ResizeOutputBuffer([NativeTypeName("DWORD")] uint cbNewBuffer, [NativeTypeName("DWORD")] uint cbBytesToCopy, byte** ppbBuffer); + + [VtblIndex(5)] + void SetResult([NativeTypeName("DWORD")] uint cbData, HRESULT hr); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetFunctionName; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetFunctionParameters; + + [NativeTypeName("HRESULT (DWORD, BYTE **)")] + public delegate* unmanaged[MemberFunction] GetOutputBuffer; + + [NativeTypeName("HRESULT (DWORD, DWORD, BYTE **)")] + public delegate* unmanaged[MemberFunction] ResizeOutputBuffer; + + [NativeTypeName("void (DWORD, HRESULT)")] + public delegate* unmanaged[MemberFunction] SetResult; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProvider.cs new file mode 100644 index 0000000000..92a54fe5d2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProvider.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("41F9A601-E25D-4AC8-8A1F-635698A30AB9")] +[NativeTypeName("struct IGlobalStopListeningProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalStopListeningProvider : IGlobalStopListeningProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalStopListeningProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalStopListeningProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public BOOL DrainRequestsGracefully() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalStopListeningProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + BOOL DrainRequestsGracefully(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] DrainRequestsGracefully; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallback.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallback.cs new file mode 100644 index 0000000000..e114383ac0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallback.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("7FD8F303-1031-4E50-918A-B7B916FD6C54")] +[NativeTypeName("struct IGlobalSuspendProcessCallback : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalSuspendProcessCallback : IGlobalSuspendProcessCallback.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalSuspendProcessCallback)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalSuspendProcessCallback*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT Resume() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalSuspendProcessCallback*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + HRESULT Resume(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] Resume; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProvider.cs new file mode 100644 index 0000000000..ea8a703854 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProvider.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("6B36A149-8620-45A0-8197-00814A706E2E")] +[NativeTypeName("struct IGlobalThreadCleanupProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalThreadCleanupProvider : IGlobalThreadCleanupProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalThreadCleanupProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalThreadCleanupProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalThreadCleanupProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + IHttpApplication* GetApplication(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProvider.cs new file mode 100644 index 0000000000..cc008a9c54 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProvider.cs @@ -0,0 +1,82 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("7C6BB150-0310-4718-A01F-6FACEB62DC1D")] +[NativeTypeName("struct IGlobalTraceEventProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IGlobalTraceEventProvider : IGlobalTraceEventProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IGlobalTraceEventProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IGlobalTraceEventProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT GetTraceEvent(HTTP_TRACE_EVENT** ppTraceEvent) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IGlobalTraceEventProvider*)Unsafe.AsPointer(ref this), ppTraceEvent); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public BOOL CheckSubscription([NativeTypeName("HTTP_MODULE_ID")] void* ModuleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IGlobalTraceEventProvider*)Unsafe.AsPointer(ref this), ModuleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetCurrentHttpRequestContext(IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IGlobalTraceEventProvider*)Unsafe.AsPointer(ref this), ppHttpContext); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + HRESULT GetTraceEvent(HTTP_TRACE_EVENT** ppTraceEvent); + + [VtblIndex(2)] + BOOL CheckSubscription([NativeTypeName("HTTP_MODULE_ID")] void* ModuleId); + + [VtblIndex(3)] + HRESULT GetCurrentHttpRequestContext(IHttpContext** ppHttpContext); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("HRESULT (HTTP_TRACE_EVENT **)")] + public delegate* unmanaged[MemberFunction] GetTraceEvent; + + [NativeTypeName("BOOL (HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] CheckSubscription; + + [NativeTypeName("HRESULT (IHttpContext **)")] + public delegate* unmanaged[MemberFunction] GetCurrentHttpRequestContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication.cs new file mode 100644 index 0000000000..5182383f65 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication.cs @@ -0,0 +1,89 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("3F75D9E6-1075-422C-AD89-93A85F2D7BDC")] +public unsafe partial struct IHttpApplication : IHttpApplication.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpApplication)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetApplicationPhysicalPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpApplication*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetApplicationId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpApplication*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppConfigPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpApplication*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpApplication*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + char* GetApplicationPhysicalPath(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetApplicationId(); + + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + char* GetAppConfigPath(); + + [VtblIndex(3)] + IHttpModuleContextContainer* GetModuleContextContainer(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetApplicationPhysicalPath; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetApplicationId; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetAppConfigPath; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication2.cs new file mode 100644 index 0000000000..a38ac06e94 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplication2.cs @@ -0,0 +1,118 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("311A3B7A-B673-4A1C-8349-2E98A23CADCB")] +[NativeTypeName("struct IHttpApplication2 : IHttpApplication")] +[NativeInheritance("IHttpApplication")] +public unsafe partial struct IHttpApplication2 : IHttpApplication2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpApplication2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetApplicationPhysicalPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetApplicationId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppConfigPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void BeginApplicationWarmup() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void EndApplicationWarmup() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public BOOL QueryIsWarmingUp() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpApplication2*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpApplication.Interface + { + [VtblIndex(4)] + void BeginApplicationWarmup(); + + [VtblIndex(5)] + void EndApplicationWarmup(); + + [VtblIndex(6)] + BOOL QueryIsWarmingUp(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetApplicationPhysicalPath; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetApplicationId; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetAppConfigPath; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] BeginApplicationWarmup; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] EndApplicationWarmup; + + [NativeTypeName("BOOL ()")] + public delegate* unmanaged[MemberFunction] QueryIsWarmingUp; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationProvider.cs new file mode 100644 index 0000000000..00edfea53b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationProvider.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("1DE2C71C-C126-4512-AED3-F4F885E14997")] +[NativeTypeName("struct IHttpApplicationProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IHttpApplicationProvider : IHttpApplicationProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpApplicationProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpApplicationProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpApplicationProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + IHttpApplication* GetApplication(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProvider.cs new file mode 100644 index 0000000000..3e00014f80 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProvider.cs @@ -0,0 +1,79 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0617D9B9-E20F-4A9F-94F9-35403B3BE01E")] +[NativeTypeName("struct IHttpApplicationResolveModulesProvider : IHttpApplicationProvider")] +[NativeInheritance("IHttpApplicationProvider")] +public unsafe partial struct IHttpApplicationResolveModulesProvider : IHttpApplicationResolveModulesProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpApplicationResolveModulesProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpApplicationResolveModulesProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpApplicationResolveModulesProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT RegisterModule([NativeTypeName("HTTP_MODULE_ID")] void* parentModuleId, IHttpModuleFactory* pModuleFactory, [NativeTypeName("PCWSTR")] char* pszModuleName, [NativeTypeName("PCWSTR")] char* pszModuleType, [NativeTypeName("PCWSTR")] char* pszModulePreCondition, [NativeTypeName("DWORD")] uint dwRequestNotifications, [NativeTypeName("DWORD")] uint dwPostRequestNotifications) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpApplicationResolveModulesProvider*)Unsafe.AsPointer(ref this), parentModuleId, pModuleFactory, pszModuleName, pszModuleType, pszModulePreCondition, dwRequestNotifications, dwPostRequestNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetPriorityForRequestNotification([NativeTypeName("PCWSTR")] char* pszModuleName, [NativeTypeName("DWORD")] uint dwRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriorityAlias) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpApplicationResolveModulesProvider*)Unsafe.AsPointer(ref this), pszModuleName, dwRequestNotification, pszPriorityAlias); + } + + public interface Interface : IHttpApplicationProvider.Interface + { + [VtblIndex(2)] + HRESULT RegisterModule([NativeTypeName("HTTP_MODULE_ID")] void* parentModuleId, IHttpModuleFactory* pModuleFactory, [NativeTypeName("PCWSTR")] char* pszModuleName, [NativeTypeName("PCWSTR")] char* pszModuleType, [NativeTypeName("PCWSTR")] char* pszModulePreCondition, [NativeTypeName("DWORD")] uint dwRequestNotifications, [NativeTypeName("DWORD")] uint dwPostRequestNotifications); + + [VtblIndex(3)] + HRESULT SetPriorityForRequestNotification([NativeTypeName("PCWSTR")] char* pszModuleName, [NativeTypeName("DWORD")] uint dwRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriorityAlias); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + + [NativeTypeName("HRESULT (HTTP_MODULE_ID, IHttpModuleFactory *, PCWSTR, PCWSTR, PCWSTR, DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] RegisterModule; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForRequestNotification; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheKey.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheKey.cs new file mode 100644 index 0000000000..182984dc76 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheKey.cs @@ -0,0 +1,101 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("CDEF2AAD-20B3-4512-B1B1-094B3844AEB2")] +public unsafe partial struct IHttpCacheKey : IHttpCacheKey.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCacheKey)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + public uint GetHash() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCacheKey*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetCacheName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCacheKey*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public bool GetIsEqual(IHttpCacheKey* pCacheCompareKey) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpCacheKey*)Unsafe.AsPointer(ref this), pCacheCompareKey); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public bool GetIsPrefix(IHttpCacheKey* pCacheCompareKey) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpCacheKey*)Unsafe.AsPointer(ref this), pCacheCompareKey); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void Enum(IHttpCacheSpecificData* pCacheData) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpCacheKey*)Unsafe.AsPointer(ref this), pCacheData); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + uint GetHash(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetCacheName(); + + [VtblIndex(2)] + bool GetIsEqual(IHttpCacheKey* pCacheCompareKey); + + [VtblIndex(3)] + bool GetIsPrefix(IHttpCacheKey* pCacheCompareKey); + + [VtblIndex(4)] + void Enum(IHttpCacheSpecificData* pCacheData); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetHash; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetCacheName; + + [NativeTypeName("bool (IHttpCacheKey *) const")] + public delegate* unmanaged[MemberFunction] GetIsEqual; + + [NativeTypeName("bool (IHttpCacheKey *) const")] + public delegate* unmanaged[MemberFunction] GetIsPrefix; + + [NativeTypeName("void (IHttpCacheSpecificData *)")] + public delegate* unmanaged[MemberFunction] Enum; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy.cs new file mode 100644 index 0000000000..f11c21674d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy.cs @@ -0,0 +1,229 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("CB1C40CA-70F2-41A0-ADD2-881F5EF57388")] +public unsafe partial struct IHttpCachePolicy : IHttpCachePolicy.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCachePolicy)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HTTP_CACHE_POLICY* GetKernelCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void SetKernelCacheInvalidatorSet() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HTTP_CACHE_POLICY* GetUserCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT AppendVaryByHeader([NativeTypeName("PCSTR")] sbyte* pszHeader) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this), pszHeader); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByHeaders() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT AppendVaryByQueryString([NativeTypeName("PCSTR")] sbyte* pszParam) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this), pszParam); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByQueryStrings() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT SetVaryByValue([NativeTypeName("PCSTR")] sbyte* pszValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this), pszValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByValue() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public BOOL IsUserCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableUserCache() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL IsCached() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetIsCached() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public BOOL GetKernelCacheInvalidatorSet() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpCachePolicy*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + HTTP_CACHE_POLICY* GetKernelCachePolicy(); + + [VtblIndex(1)] + void SetKernelCacheInvalidatorSet(); + + [VtblIndex(2)] + HTTP_CACHE_POLICY* GetUserCachePolicy(); + + [VtblIndex(3)] + HRESULT AppendVaryByHeader([NativeTypeName("PCSTR")] sbyte* pszHeader); + + [VtblIndex(4)] + [return: NativeTypeName("PCSTR")] + sbyte* GetVaryByHeaders(); + + [VtblIndex(5)] + HRESULT AppendVaryByQueryString([NativeTypeName("PCSTR")] sbyte* pszParam); + + [VtblIndex(6)] + [return: NativeTypeName("PCSTR")] + sbyte* GetVaryByQueryStrings(); + + [VtblIndex(7)] + HRESULT SetVaryByValue([NativeTypeName("PCSTR")] sbyte* pszValue); + + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + sbyte* GetVaryByValue(); + + [VtblIndex(9)] + BOOL IsUserCacheEnabled(); + + [VtblIndex(10)] + void DisableUserCache(); + + [VtblIndex(11)] + BOOL IsCached(); + + [VtblIndex(12)] + void SetIsCached(); + + [VtblIndex(13)] + BOOL GetKernelCacheInvalidatorSet(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HTTP_CACHE_POLICY *()")] + public delegate* unmanaged[MemberFunction] GetKernelCachePolicy; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetKernelCacheInvalidatorSet; + + [NativeTypeName("HTTP_CACHE_POLICY *()")] + public delegate* unmanaged[MemberFunction] GetUserCachePolicy; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] AppendVaryByHeader; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByHeaders; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] AppendVaryByQueryString; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByQueryStrings; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetVaryByValue; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByValue; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsUserCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableUserCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsCached; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetIsCached; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheInvalidatorSet; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2.cs new file mode 100644 index 0000000000..141ee4e875 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2.cs @@ -0,0 +1,214 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("9F4BA807-050E-4495-AE55-8870F7E9194A")] +[NativeTypeName("struct IHttpCachePolicy2 : IHttpCachePolicy")] +[NativeInheritance("IHttpCachePolicy")] +public unsafe partial struct IHttpCachePolicy2 : IHttpCachePolicy2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCachePolicy2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HTTP_CACHE_POLICY* GetKernelCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void SetKernelCacheInvalidatorSet() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HTTP_CACHE_POLICY* GetUserCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT AppendVaryByHeader([NativeTypeName("PCSTR")] sbyte* pszHeader) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this), pszHeader); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByHeaders() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT AppendVaryByQueryString([NativeTypeName("PCSTR")] sbyte* pszParam) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this), pszParam); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByQueryStrings() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT SetVaryByValue([NativeTypeName("PCSTR")] sbyte* pszValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this), pszValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetVaryByValue() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public BOOL IsUserCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableUserCache() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL IsCached() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetIsCached() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public BOOL GetKernelCacheInvalidatorSet() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public BOOL IsForceUpdateSet() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public void SetForceUpdate() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpCachePolicy2*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpCachePolicy.Interface + { + [VtblIndex(14)] + BOOL IsForceUpdateSet(); + + [VtblIndex(15)] + void SetForceUpdate(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HTTP_CACHE_POLICY *()")] + public delegate* unmanaged[MemberFunction] GetKernelCachePolicy; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetKernelCacheInvalidatorSet; + + [NativeTypeName("HTTP_CACHE_POLICY *()")] + public delegate* unmanaged[MemberFunction] GetUserCachePolicy; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] AppendVaryByHeader; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByHeaders; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] AppendVaryByQueryString; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByQueryStrings; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetVaryByValue; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetVaryByValue; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsUserCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableUserCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsCached; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetIsCached; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheInvalidatorSet; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsForceUpdateSet; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetForceUpdate; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificData.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificData.cs new file mode 100644 index 0000000000..b91bbad3db --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificData.cs @@ -0,0 +1,125 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("37776AFF-852E-4EEC-93A5-B85A285A95B8")] +public unsafe partial struct IHttpCacheSpecificData : IHttpCacheSpecificData.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCacheSpecificData)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpCacheKey* GetCacheKey() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void ReferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void DereferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void ResetTTL() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementTTL(BOOL* pfTTLExpired) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this), pfTTLExpired); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void SetFlushed() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public BOOL GetFlushed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpCacheSpecificData*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpCacheKey* GetCacheKey(); + + [VtblIndex(1)] + void ReferenceCacheData(); + + [VtblIndex(2)] + void DereferenceCacheData(); + + [VtblIndex(3)] + void ResetTTL(); + + [VtblIndex(4)] + void DecrementTTL(BOOL* pfTTLExpired); + + [VtblIndex(5)] + void SetFlushed(); + + [VtblIndex(6)] + BOOL GetFlushed(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpCacheKey *() const")] + public delegate* unmanaged[MemberFunction] GetCacheKey; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetTTL; + + [NativeTypeName("void (BOOL *)")] + public delegate* unmanaged[MemberFunction] DecrementTTL; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetFlushed; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetFlushed; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo.cs new file mode 100644 index 0000000000..17a779d089 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo.cs @@ -0,0 +1,57 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("49DD20E3-D9C0-463C-8821-F3413B55CC00")] +public unsafe partial struct IHttpCompletionInfo : IHttpCompletionInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCompletionInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + public uint GetCompletionBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCompletionInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT GetCompletionStatus() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCompletionInfo*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + uint GetCompletionBytes(); + + [VtblIndex(1)] + HRESULT GetCompletionStatus(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetCompletionBytes; + + [NativeTypeName("HRESULT () const")] + public delegate* unmanaged[MemberFunction] GetCompletionStatus; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2.cs new file mode 100644 index 0000000000..cd3aa091d1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2.cs @@ -0,0 +1,68 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("53129F70-0196-47EC-B16C-127906E2AFEB")] +[NativeTypeName("struct IHttpCompletionInfo2 : IHttpCompletionInfo")] +[NativeInheritance("IHttpCompletionInfo")] +public unsafe partial struct IHttpCompletionInfo2 : IHttpCompletionInfo2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpCompletionInfo2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + public uint GetCompletionBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpCompletionInfo2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT GetCompletionStatus() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpCompletionInfo2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("DWORD")] + public uint GetCompletedOperation() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpCompletionInfo2*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpCompletionInfo.Interface + { + [VtblIndex(2)] + [return: NativeTypeName("DWORD")] + uint GetCompletedOperation(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetCompletionBytes; + + [NativeTypeName("HRESULT () const")] + public delegate* unmanaged[MemberFunction] GetCompletionStatus; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetCompletedOperation; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpConnection.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnection.cs new file mode 100644 index 0000000000..250cfa8396 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnection.cs @@ -0,0 +1,69 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("D9A5DE00-3346-4599-9826-FE88565E1226")] +public unsafe partial struct IHttpConnection : IHttpConnection.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpConnection)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public BOOL IsConnected() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpConnection*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void* AllocateMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpConnection*)Unsafe.AsPointer(ref this), cbAllocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnectionModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpConnection*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + BOOL IsConnected(); + + [VtblIndex(1)] + void* AllocateMemory([NativeTypeName("DWORD")] uint cbAllocation); + + [VtblIndex(2)] + IHttpConnectionModuleContextContainer* GetModuleContextContainer(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsConnected; + + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateMemory; + + [NativeTypeName("IHttpConnectionModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainer.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainer.cs new file mode 100644 index 0000000000..f5e77cbb90 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainer.cs @@ -0,0 +1,79 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("F3DD2FB3-4D11-4295-B8AB-4CB667ADD1FE")] +[NativeTypeName("struct IHttpConnectionModuleContextContainer : IHttpModuleContextContainer")] +[NativeInheritance("IHttpModuleContextContainer")] +public unsafe partial struct IHttpConnectionModuleContextContainer : IHttpConnectionModuleContextContainer.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpConnectionModuleContextContainer)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpStoredContext* GetModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpConnectionModuleContextContainer*)Unsafe.AsPointer(ref this), moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetModuleContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpConnectionModuleContextContainer*)Unsafe.AsPointer(ref this), ppStoredContext, moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnectionStoredContext* GetConnectionModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpConnectionModuleContextContainer*)Unsafe.AsPointer(ref this), moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetConnectionModuleContext(IHttpConnectionStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpConnectionModuleContextContainer*)Unsafe.AsPointer(ref this), ppStoredContext, moduleId); + } + + public interface Interface : IHttpModuleContextContainer.Interface + { + [VtblIndex(2)] + IHttpConnectionStoredContext* GetConnectionModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId); + + [VtblIndex(3)] + HRESULT SetConnectionModuleContext(IHttpConnectionStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpStoredContext *(HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] GetModuleContext; + + [NativeTypeName("HRESULT (IHttpStoredContext *, HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] SetModuleContext; + + [NativeTypeName("IHttpConnectionStoredContext *(HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] GetConnectionModuleContext; + + [NativeTypeName("HRESULT (IHttpConnectionStoredContext *, HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] SetConnectionModuleContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContext.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContext.cs new file mode 100644 index 0000000000..6e720e2c84 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContext.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("841D9A71-75F4-4626-8B97-66046CA7E45B")] +[NativeTypeName("struct IHttpConnectionStoredContext : IHttpStoredContext")] +[NativeInheritance("IHttpStoredContext")] +public unsafe partial struct IHttpConnectionStoredContext : IHttpConnectionStoredContext.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpConnectionStoredContext)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void CleanupStoredContext() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpConnectionStoredContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void NotifyDisconnect() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpConnectionStoredContext*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpStoredContext.Interface + { + [VtblIndex(1)] + void NotifyDisconnect(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CleanupStoredContext; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] NotifyDisconnect; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpContext.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext.cs new file mode 100644 index 0000000000..c32f44d0de --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext.cs @@ -0,0 +1,584 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("424C1B8C-A1BA-44D7-AC98-9F8F457701A5")] +public unsafe partial struct IHttpContext : IHttpContext.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpContext)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpSite* GetSite() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnection* GetConnection() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpRequest* GetRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public IHttpResponse* GetResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public BOOL GetResponseHeadersSent() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public IHttpUser* GetUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public void IndicateCompletion(REQUEST_NOTIFICATION_STATUS notificationStatus) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpContext*)Unsafe.AsPointer(ref this), notificationStatus); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpContext*)Unsafe.AsPointer(ref this), cbBytes); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableNotifications([NativeTypeName("DWORD")] uint dwNotifications, [NativeTypeName("DWORD")] uint dwPostNotifications) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpContext*)Unsafe.AsPointer(ref this), dwNotifications, dwPostNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL GetNextNotification(REQUEST_NOTIFICATION_STATUS status, [NativeTypeName("DWORD *")] uint* pdwNotification, BOOL* pfIsPostNotification, CHttpModule** ppModuleInfo, IHttpEventProvider** ppRequestOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpContext*)Unsafe.AsPointer(ref this), status, pdwNotification, pfIsPostNotification, ppModuleInfo, ppRequestOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetIsLastNotification(REQUEST_NOTIFICATION_STATUS status) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpContext*)Unsafe.AsPointer(ref this), status); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT ExecuteRequest(BOOL fAsync, IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwExecuteFlags, IHttpUser* pHttpUser, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpContext*)Unsafe.AsPointer(ref this), fAsync, pHttpContext, dwExecuteFlags, pHttpUser, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("DWORD")] + public uint GetExecuteFlags() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCSTR *")] sbyte** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpContext*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR *")] char** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpContext*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT SetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR")] char* pszVariableValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpContext*)Unsafe.AsPointer(ref this), pszVariableName, pszVariableValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public void* AllocateRequestMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpContext*)Unsafe.AsPointer(ref this), cbAllocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public IHttpUrlInfo* GetUrlInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public IMetadataInfo* GetMetadata() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + [return: NativeTypeName("PCWSTR")] + public char* GetPhysicalPath([NativeTypeName("DWORD *")] uint* pcchPhysicalPath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpContext*)Unsafe.AsPointer(ref this), pcchPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptName([NativeTypeName("DWORD *")] uint* pcchScriptName = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpContext*)Unsafe.AsPointer(ref this), pcchScriptName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptTranslated([NativeTypeName("DWORD *")] uint* pcchScriptTranslated = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpContext*)Unsafe.AsPointer(ref this), pcchScriptTranslated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public IScriptMapInfo* GetScriptMap() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public void SetRequestHandled() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public IHttpFileInfo* GetFileInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public HRESULT MapPath([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD *")] uint* pcbPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpContext*)Unsafe.AsPointer(ref this), pszUrl, pszPhysicalPath, pcbPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput, BOOL* pfCompletionExpected) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpContext*)Unsafe.AsPointer(ref this), pCustomOutput, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public IHttpContext* GetParentContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public IHttpContext* GetRootContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT CloneContext([NativeTypeName("DWORD")] uint dwCloneFlags, IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpContext*)Unsafe.AsPointer(ref this), dwCloneFlags, ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(32)] + public HRESULT ReleaseClonedContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[32]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(33)] + public HRESULT GetCurrentExecutionStats([NativeTypeName("DWORD *")] uint* pdwNotification, [NativeTypeName("DWORD *")] uint* pdwNotificationStartTickCount = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwModuleStartTickCount = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotification = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotificationStartTickCount = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[33]))((IHttpContext*)Unsafe.AsPointer(ref this), pdwNotification, pdwNotificationStartTickCount, ppszModule, pdwModuleStartTickCount, pdwAsyncNotification, pdwAsyncNotificationStartTickCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(34)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[34]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(35)] + public HRESULT GetServerVarChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("DWORD *")] uint* pdwVariableSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppVariableNameSnapshot, [NativeTypeName("PCWSTR **")] char*** ppVariableValueSnapshot, [NativeTypeName("DWORD *")] uint* pdwDiffedVariables, [NativeTypeName("DWORD **")] uint** ppDiffedVariableIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[35]))((IHttpContext*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, pdwVariableSnapshot, ppVariableNameSnapshot, ppVariableValueSnapshot, pdwDiffedVariables, ppDiffedVariableIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(36)] + public HRESULT CancelIo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[36]))((IHttpContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(37)] + public HRESULT MapHandler([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PCSTR")] sbyte* pszVerb, IScriptMapInfo** ppScriptMap, [Optional] BOOL fIgnoreWildcardMappings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[37]))((IHttpContext*)Unsafe.AsPointer(ref this), dwSiteId, pszSiteName, pszUrl, pszVerb, ppScriptMap, fIgnoreWildcardMappings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(38)] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public HRESULT GetExtendedInterface(HTTP_CONTEXT_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[38]))((IHttpContext*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpSite* GetSite(); + + [VtblIndex(1)] + IHttpApplication* GetApplication(); + + [VtblIndex(2)] + IHttpConnection* GetConnection(); + + [VtblIndex(3)] + IHttpRequest* GetRequest(); + + [VtblIndex(4)] + IHttpResponse* GetResponse(); + + [VtblIndex(5)] + BOOL GetResponseHeadersSent(); + + [VtblIndex(6)] + IHttpUser* GetUser(); + + [VtblIndex(7)] + IHttpModuleContextContainer* GetModuleContextContainer(); + + [VtblIndex(8)] + void IndicateCompletion(REQUEST_NOTIFICATION_STATUS notificationStatus); + + [VtblIndex(9)] + HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes); + + [VtblIndex(10)] + void DisableNotifications([NativeTypeName("DWORD")] uint dwNotifications, [NativeTypeName("DWORD")] uint dwPostNotifications); + + [VtblIndex(11)] + BOOL GetNextNotification(REQUEST_NOTIFICATION_STATUS status, [NativeTypeName("DWORD *")] uint* pdwNotification, BOOL* pfIsPostNotification, CHttpModule** ppModuleInfo, IHttpEventProvider** ppRequestOutput); + + [VtblIndex(12)] + BOOL GetIsLastNotification(REQUEST_NOTIFICATION_STATUS status); + + [VtblIndex(13)] + HRESULT ExecuteRequest(BOOL fAsync, IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwExecuteFlags, IHttpUser* pHttpUser, BOOL* pfCompletionExpected = null); + + [VtblIndex(14)] + [return: NativeTypeName("DWORD")] + uint GetExecuteFlags(); + + [VtblIndex(15)] + HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCSTR *")] sbyte** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength); + + [VtblIndex(16)] + HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR *")] char** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength); + + [VtblIndex(17)] + HRESULT SetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR")] char* pszVariableValue); + + [VtblIndex(18)] + void* AllocateRequestMemory([NativeTypeName("DWORD")] uint cbAllocation); + + [VtblIndex(19)] + IHttpUrlInfo* GetUrlInfo(); + + [VtblIndex(20)] + IMetadataInfo* GetMetadata(); + + [VtblIndex(21)] + [return: NativeTypeName("PCWSTR")] + char* GetPhysicalPath([NativeTypeName("DWORD *")] uint* pcchPhysicalPath = null); + + [VtblIndex(22)] + [return: NativeTypeName("PCWSTR")] + char* GetScriptName([NativeTypeName("DWORD *")] uint* pcchScriptName = null); + + [VtblIndex(23)] + [return: NativeTypeName("PCWSTR")] + char* GetScriptTranslated([NativeTypeName("DWORD *")] uint* pcchScriptTranslated = null); + + [VtblIndex(24)] + IScriptMapInfo* GetScriptMap(); + + [VtblIndex(25)] + void SetRequestHandled(); + + [VtblIndex(26)] + IHttpFileInfo* GetFileInfo(); + + [VtblIndex(27)] + HRESULT MapPath([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD *")] uint* pcbPhysicalPath); + + [VtblIndex(28)] + HRESULT NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput, BOOL* pfCompletionExpected); + + [VtblIndex(29)] + IHttpContext* GetParentContext(); + + [VtblIndex(30)] + IHttpContext* GetRootContext(); + + [VtblIndex(31)] + HRESULT CloneContext([NativeTypeName("DWORD")] uint dwCloneFlags, IHttpContext** ppHttpContext); + + [VtblIndex(32)] + HRESULT ReleaseClonedContext(); + + [VtblIndex(33)] + HRESULT GetCurrentExecutionStats([NativeTypeName("DWORD *")] uint* pdwNotification, [NativeTypeName("DWORD *")] uint* pdwNotificationStartTickCount = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwModuleStartTickCount = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotification = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotificationStartTickCount = null); + + [VtblIndex(34)] + IHttpTraceContext* GetTraceContext(); + + [VtblIndex(35)] + HRESULT GetServerVarChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("DWORD *")] uint* pdwVariableSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppVariableNameSnapshot, [NativeTypeName("PCWSTR **")] char*** ppVariableValueSnapshot, [NativeTypeName("DWORD *")] uint* pdwDiffedVariables, [NativeTypeName("DWORD **")] uint** ppDiffedVariableIndices); + + [VtblIndex(36)] + HRESULT CancelIo(); + + [VtblIndex(37)] + HRESULT MapHandler([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PCSTR")] sbyte* pszVerb, IScriptMapInfo** ppScriptMap, [Optional] BOOL fIgnoreWildcardMappings); + + [VtblIndex(38)] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + HRESULT GetExtendedInterface(HTTP_CONTEXT_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpSite *()")] + public delegate* unmanaged[MemberFunction] GetSite; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + + [NativeTypeName("IHttpConnection *()")] + public delegate* unmanaged[MemberFunction] GetConnection; + + [NativeTypeName("IHttpRequest *()")] + public delegate* unmanaged[MemberFunction] GetRequest; + + [NativeTypeName("IHttpResponse *()")] + public delegate* unmanaged[MemberFunction] GetResponse; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetResponseHeadersSent; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetUser; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] IndicateCompletion; + + [NativeTypeName("HRESULT (DWORD)")] + public delegate* unmanaged[MemberFunction] PostCompletion; + + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] DisableNotifications; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS, DWORD *, BOOL *, CHttpModule **, IHttpEventProvider **)")] + public delegate* unmanaged[MemberFunction] GetNextNotification; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] GetIsLastNotification; + + [NativeTypeName("HRESULT (BOOL, IHttpContext *, DWORD, IHttpUser *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetExecuteFlags; + + [NativeTypeName("HRESULT (PCSTR, PCSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetServerVariable; + + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateRequestMemory; + + [NativeTypeName("IHttpUrlInfo *()")] + public delegate* unmanaged[MemberFunction] GetUrlInfo; + + [NativeTypeName("IMetadataInfo *()")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetPhysicalPath; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetScriptName; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetScriptTranslated; + + [NativeTypeName("IScriptMapInfo *() const")] + public delegate* unmanaged[MemberFunction] GetScriptMap; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetRequestHandled; + + [NativeTypeName("IHttpFileInfo *() const")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR, PWSTR, DWORD *)")] + public delegate* unmanaged[MemberFunction] MapPath; + + [NativeTypeName("HRESULT (ICustomNotificationProvider *, BOOL *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetParentContext; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetRootContext; + + [NativeTypeName("HRESULT (DWORD, IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CloneContext; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReleaseClonedContext; + + [NativeTypeName("HRESULT (DWORD *, DWORD *, PCWSTR *, DWORD *, DWORD *, DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetCurrentExecutionStats; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (DWORD, DWORD *, DWORD *, PCSTR **, PCWSTR **, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetServerVarChanges; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] CancelIo; + + [NativeTypeName("HRESULT (DWORD, PCWSTR, PCWSTR, PCSTR, IScriptMapInfo **, BOOL)")] + public delegate* unmanaged[MemberFunction] MapHandler; + + [NativeTypeName("HRESULT (HTTP_CONTEXT_INTERFACE_VERSION, PVOID *)")] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpContext2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext2.cs new file mode 100644 index 0000000000..f07b96e7a0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext2.cs @@ -0,0 +1,478 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("C986182C-CF4A-4482-8205-0DBBC1FD6CEE")] +[NativeTypeName("struct IHttpContext2 : IHttpContext")] +[NativeInheritance("IHttpContext")] +public unsafe partial struct IHttpContext2 : IHttpContext2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpContext2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpSite* GetSite() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnection* GetConnection() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpRequest* GetRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public IHttpResponse* GetResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public BOOL GetResponseHeadersSent() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public IHttpUser* GetUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public void IndicateCompletion(REQUEST_NOTIFICATION_STATUS notificationStatus) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpContext2*)Unsafe.AsPointer(ref this), notificationStatus); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpContext2*)Unsafe.AsPointer(ref this), cbBytes); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableNotifications([NativeTypeName("DWORD")] uint dwNotifications, [NativeTypeName("DWORD")] uint dwPostNotifications) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpContext2*)Unsafe.AsPointer(ref this), dwNotifications, dwPostNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL GetNextNotification(REQUEST_NOTIFICATION_STATUS status, [NativeTypeName("DWORD *")] uint* pdwNotification, BOOL* pfIsPostNotification, CHttpModule** ppModuleInfo, IHttpEventProvider** ppRequestOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpContext2*)Unsafe.AsPointer(ref this), status, pdwNotification, pfIsPostNotification, ppModuleInfo, ppRequestOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetIsLastNotification(REQUEST_NOTIFICATION_STATUS status) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpContext2*)Unsafe.AsPointer(ref this), status); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT ExecuteRequest(BOOL fAsync, IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwExecuteFlags, IHttpUser* pHttpUser, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpContext2*)Unsafe.AsPointer(ref this), fAsync, pHttpContext, dwExecuteFlags, pHttpUser, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("DWORD")] + public uint GetExecuteFlags() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCSTR *")] sbyte** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpContext2*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR *")] char** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpContext2*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT SetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR")] char* pszVariableValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpContext2*)Unsafe.AsPointer(ref this), pszVariableName, pszVariableValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public void* AllocateRequestMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpContext2*)Unsafe.AsPointer(ref this), cbAllocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public IHttpUrlInfo* GetUrlInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public IMetadataInfo* GetMetadata() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + [return: NativeTypeName("PCWSTR")] + public char* GetPhysicalPath([NativeTypeName("DWORD *")] uint* pcchPhysicalPath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpContext2*)Unsafe.AsPointer(ref this), pcchPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptName([NativeTypeName("DWORD *")] uint* pcchScriptName = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpContext2*)Unsafe.AsPointer(ref this), pcchScriptName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptTranslated([NativeTypeName("DWORD *")] uint* pcchScriptTranslated = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpContext2*)Unsafe.AsPointer(ref this), pcchScriptTranslated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public IScriptMapInfo* GetScriptMap() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public void SetRequestHandled() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public IHttpFileInfo* GetFileInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public HRESULT MapPath([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD *")] uint* pcbPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpContext2*)Unsafe.AsPointer(ref this), pszUrl, pszPhysicalPath, pcbPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput, BOOL* pfCompletionExpected) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpContext2*)Unsafe.AsPointer(ref this), pCustomOutput, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public IHttpContext* GetParentContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public IHttpContext* GetRootContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT CloneContext([NativeTypeName("DWORD")] uint dwCloneFlags, IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpContext2*)Unsafe.AsPointer(ref this), dwCloneFlags, ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(32)] + public HRESULT ReleaseClonedContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[32]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(33)] + public HRESULT GetCurrentExecutionStats([NativeTypeName("DWORD *")] uint* pdwNotification, [NativeTypeName("DWORD *")] uint* pdwNotificationStartTickCount = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwModuleStartTickCount = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotification = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotificationStartTickCount = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[33]))((IHttpContext2*)Unsafe.AsPointer(ref this), pdwNotification, pdwNotificationStartTickCount, ppszModule, pdwModuleStartTickCount, pdwAsyncNotification, pdwAsyncNotificationStartTickCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(34)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[34]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(35)] + public HRESULT GetServerVarChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("DWORD *")] uint* pdwVariableSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppVariableNameSnapshot, [NativeTypeName("PCWSTR **")] char*** ppVariableValueSnapshot, [NativeTypeName("DWORD *")] uint* pdwDiffedVariables, [NativeTypeName("DWORD **")] uint** ppDiffedVariableIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[35]))((IHttpContext2*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, pdwVariableSnapshot, ppVariableNameSnapshot, ppVariableValueSnapshot, pdwDiffedVariables, ppDiffedVariableIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(36)] + public HRESULT CancelIo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[36]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(37)] + public HRESULT MapHandler([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PCSTR")] sbyte* pszVerb, IScriptMapInfo** ppScriptMap, [Optional] BOOL fIgnoreWildcardMappings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[37]))((IHttpContext2*)Unsafe.AsPointer(ref this), dwSiteId, pszSiteName, pszUrl, pszVerb, ppScriptMap, fIgnoreWildcardMappings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(38)] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public HRESULT GetExtendedInterface(HTTP_CONTEXT_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[38]))((IHttpContext2*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(39)] + public IHttpUser* GetOriginalUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[39]))((IHttpContext2*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpContext.Interface + { + [VtblIndex(39)] + IHttpUser* GetOriginalUser(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpSite *()")] + public delegate* unmanaged[MemberFunction] GetSite; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + + [NativeTypeName("IHttpConnection *()")] + public delegate* unmanaged[MemberFunction] GetConnection; + + [NativeTypeName("IHttpRequest *()")] + public delegate* unmanaged[MemberFunction] GetRequest; + + [NativeTypeName("IHttpResponse *()")] + public delegate* unmanaged[MemberFunction] GetResponse; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetResponseHeadersSent; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetUser; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] IndicateCompletion; + + [NativeTypeName("HRESULT (DWORD)")] + public delegate* unmanaged[MemberFunction] PostCompletion; + + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] DisableNotifications; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS, DWORD *, BOOL *, CHttpModule **, IHttpEventProvider **)")] + public delegate* unmanaged[MemberFunction] GetNextNotification; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] GetIsLastNotification; + + [NativeTypeName("HRESULT (BOOL, IHttpContext *, DWORD, IHttpUser *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetExecuteFlags; + + [NativeTypeName("HRESULT (PCSTR, PCSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetServerVariable; + + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateRequestMemory; + + [NativeTypeName("IHttpUrlInfo *()")] + public delegate* unmanaged[MemberFunction] GetUrlInfo; + + [NativeTypeName("IMetadataInfo *()")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetPhysicalPath; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetScriptName; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetScriptTranslated; + + [NativeTypeName("IScriptMapInfo *() const")] + public delegate* unmanaged[MemberFunction] GetScriptMap; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetRequestHandled; + + [NativeTypeName("IHttpFileInfo *() const")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR, PWSTR, DWORD *)")] + public delegate* unmanaged[MemberFunction] MapPath; + + [NativeTypeName("HRESULT (ICustomNotificationProvider *, BOOL *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetParentContext; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetRootContext; + + [NativeTypeName("HRESULT (DWORD, IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CloneContext; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReleaseClonedContext; + + [NativeTypeName("HRESULT (DWORD *, DWORD *, PCWSTR *, DWORD *, DWORD *, DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetCurrentExecutionStats; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (DWORD, DWORD *, DWORD *, PCSTR **, PCWSTR **, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetServerVarChanges; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] CancelIo; + + [NativeTypeName("HRESULT (DWORD, PCWSTR, PCWSTR, PCSTR, IScriptMapInfo **, BOOL)")] + public delegate* unmanaged[MemberFunction] MapHandler; + + [NativeTypeName("HRESULT (HTTP_CONTEXT_INTERFACE_VERSION, PVOID *)")] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetOriginalUser; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpContext3.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext3.cs new file mode 100644 index 0000000000..94c621fa6b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext3.cs @@ -0,0 +1,528 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("BF53C022-CA4B-4349-A38E-A4B78AD897FB")] +[NativeTypeName("struct IHttpContext3 : IHttpContext2")] +[NativeInheritance("IHttpContext2")] +public unsafe partial struct IHttpContext3 : IHttpContext3.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpContext3)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpSite* GetSite() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnection* GetConnection() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpRequest* GetRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public IHttpResponse* GetResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public BOOL GetResponseHeadersSent() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public IHttpUser* GetUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public void IndicateCompletion(REQUEST_NOTIFICATION_STATUS notificationStatus) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpContext3*)Unsafe.AsPointer(ref this), notificationStatus); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpContext3*)Unsafe.AsPointer(ref this), cbBytes); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableNotifications([NativeTypeName("DWORD")] uint dwNotifications, [NativeTypeName("DWORD")] uint dwPostNotifications) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpContext3*)Unsafe.AsPointer(ref this), dwNotifications, dwPostNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL GetNextNotification(REQUEST_NOTIFICATION_STATUS status, [NativeTypeName("DWORD *")] uint* pdwNotification, BOOL* pfIsPostNotification, CHttpModule** ppModuleInfo, IHttpEventProvider** ppRequestOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpContext3*)Unsafe.AsPointer(ref this), status, pdwNotification, pfIsPostNotification, ppModuleInfo, ppRequestOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetIsLastNotification(REQUEST_NOTIFICATION_STATUS status) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpContext3*)Unsafe.AsPointer(ref this), status); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT ExecuteRequest(BOOL fAsync, IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwExecuteFlags, IHttpUser* pHttpUser, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpContext3*)Unsafe.AsPointer(ref this), fAsync, pHttpContext, dwExecuteFlags, pHttpUser, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("DWORD")] + public uint GetExecuteFlags() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCSTR *")] sbyte** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpContext3*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR *")] char** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpContext3*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT SetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR")] char* pszVariableValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpContext3*)Unsafe.AsPointer(ref this), pszVariableName, pszVariableValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public void* AllocateRequestMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpContext3*)Unsafe.AsPointer(ref this), cbAllocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public IHttpUrlInfo* GetUrlInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public IMetadataInfo* GetMetadata() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + [return: NativeTypeName("PCWSTR")] + public char* GetPhysicalPath([NativeTypeName("DWORD *")] uint* pcchPhysicalPath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpContext3*)Unsafe.AsPointer(ref this), pcchPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptName([NativeTypeName("DWORD *")] uint* pcchScriptName = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpContext3*)Unsafe.AsPointer(ref this), pcchScriptName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptTranslated([NativeTypeName("DWORD *")] uint* pcchScriptTranslated = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpContext3*)Unsafe.AsPointer(ref this), pcchScriptTranslated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public IScriptMapInfo* GetScriptMap() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public void SetRequestHandled() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public IHttpFileInfo* GetFileInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public HRESULT MapPath([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD *")] uint* pcbPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpContext3*)Unsafe.AsPointer(ref this), pszUrl, pszPhysicalPath, pcbPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput, BOOL* pfCompletionExpected) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpContext3*)Unsafe.AsPointer(ref this), pCustomOutput, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public IHttpContext* GetParentContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public IHttpContext* GetRootContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT CloneContext([NativeTypeName("DWORD")] uint dwCloneFlags, IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpContext3*)Unsafe.AsPointer(ref this), dwCloneFlags, ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(32)] + public HRESULT ReleaseClonedContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[32]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(33)] + public HRESULT GetCurrentExecutionStats([NativeTypeName("DWORD *")] uint* pdwNotification, [NativeTypeName("DWORD *")] uint* pdwNotificationStartTickCount = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwModuleStartTickCount = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotification = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotificationStartTickCount = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[33]))((IHttpContext3*)Unsafe.AsPointer(ref this), pdwNotification, pdwNotificationStartTickCount, ppszModule, pdwModuleStartTickCount, pdwAsyncNotification, pdwAsyncNotificationStartTickCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(34)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[34]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(35)] + public HRESULT GetServerVarChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("DWORD *")] uint* pdwVariableSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppVariableNameSnapshot, [NativeTypeName("PCWSTR **")] char*** ppVariableValueSnapshot, [NativeTypeName("DWORD *")] uint* pdwDiffedVariables, [NativeTypeName("DWORD **")] uint** ppDiffedVariableIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[35]))((IHttpContext3*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, pdwVariableSnapshot, ppVariableNameSnapshot, ppVariableValueSnapshot, pdwDiffedVariables, ppDiffedVariableIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(36)] + public HRESULT CancelIo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[36]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(37)] + public HRESULT MapHandler([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PCSTR")] sbyte* pszVerb, IScriptMapInfo** ppScriptMap, [Optional] BOOL fIgnoreWildcardMappings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[37]))((IHttpContext3*)Unsafe.AsPointer(ref this), dwSiteId, pszSiteName, pszUrl, pszVerb, ppScriptMap, fIgnoreWildcardMappings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(38)] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public HRESULT GetExtendedInterface(HTTP_CONTEXT_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[38]))((IHttpContext3*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(39)] + public IHttpUser* GetOriginalUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[39]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(40)] + public INamedContextContainer* GetNamedContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[40]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(41)] + public void EnableFullDuplex() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[41]))((IHttpContext3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(42)] + public HRESULT InheritServerVariable([NativeTypeName("PCSTR")] sbyte* szName, [Optional] BOOL fFailIfNotExist) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[42]))((IHttpContext3*)Unsafe.AsPointer(ref this), szName, fFailIfNotExist); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(43)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes, [NativeTypeName("LPOVERLAPPED_COMPLETION_ROUTINE")] delegate* unmanaged pfnCompletionRoutine, void* pvCompletionContext) + { + return ((delegate* unmanaged[MemberFunction], void*, int>)(lpVtbl[43]))((IHttpContext3*)Unsafe.AsPointer(ref this), cbBytes, pfnCompletionRoutine, pvCompletionContext); + } + + public interface Interface : IHttpContext2.Interface + { + [VtblIndex(40)] + INamedContextContainer* GetNamedContextContainer(); + + [VtblIndex(41)] + void EnableFullDuplex(); + + [VtblIndex(42)] + HRESULT InheritServerVariable([NativeTypeName("PCSTR")] sbyte* szName, [Optional] BOOL fFailIfNotExist); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpSite *()")] + public delegate* unmanaged[MemberFunction] GetSite; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + + [NativeTypeName("IHttpConnection *()")] + public delegate* unmanaged[MemberFunction] GetConnection; + + [NativeTypeName("IHttpRequest *()")] + public delegate* unmanaged[MemberFunction] GetRequest; + + [NativeTypeName("IHttpResponse *()")] + public delegate* unmanaged[MemberFunction] GetResponse; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetResponseHeadersSent; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetUser; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] IndicateCompletion; + + [NativeTypeName("HRESULT (DWORD)")] + public delegate* unmanaged[MemberFunction] PostCompletion; + + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] DisableNotifications; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS, DWORD *, BOOL *, CHttpModule **, IHttpEventProvider **)")] + public delegate* unmanaged[MemberFunction] GetNextNotification; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] GetIsLastNotification; + + [NativeTypeName("HRESULT (BOOL, IHttpContext *, DWORD, IHttpUser *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetExecuteFlags; + + [NativeTypeName("HRESULT (PCSTR, PCSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetServerVariable; + + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateRequestMemory; + + [NativeTypeName("IHttpUrlInfo *()")] + public delegate* unmanaged[MemberFunction] GetUrlInfo; + + [NativeTypeName("IMetadataInfo *()")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetPhysicalPath; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetScriptName; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetScriptTranslated; + + [NativeTypeName("IScriptMapInfo *() const")] + public delegate* unmanaged[MemberFunction] GetScriptMap; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetRequestHandled; + + [NativeTypeName("IHttpFileInfo *() const")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR, PWSTR, DWORD *)")] + public delegate* unmanaged[MemberFunction] MapPath; + + [NativeTypeName("HRESULT (ICustomNotificationProvider *, BOOL *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetParentContext; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetRootContext; + + [NativeTypeName("HRESULT (DWORD, IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CloneContext; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReleaseClonedContext; + + [NativeTypeName("HRESULT (DWORD *, DWORD *, PCWSTR *, DWORD *, DWORD *, DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetCurrentExecutionStats; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (DWORD, DWORD *, DWORD *, PCSTR **, PCWSTR **, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetServerVarChanges; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] CancelIo; + + [NativeTypeName("HRESULT (DWORD, PCWSTR, PCWSTR, PCSTR, IScriptMapInfo **, BOOL)")] + public delegate* unmanaged[MemberFunction] MapHandler; + + [NativeTypeName("HRESULT (HTTP_CONTEXT_INTERFACE_VERSION, PVOID *)")] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetOriginalUser; + + [NativeTypeName("INamedContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetNamedContextContainer; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] EnableFullDuplex; + + [NativeTypeName("HRESULT (PCSTR, BOOL)")] + public delegate* unmanaged[MemberFunction] InheritServerVariable; + + [NativeTypeName("HRESULT (DWORD, LPOVERLAPPED_COMPLETION_ROUTINE, void *)")] + public delegate* unmanaged[MemberFunction], void*, int> PostCompletion1; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpContext4.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext4.cs new file mode 100644 index 0000000000..a4d5c96c35 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpContext4.cs @@ -0,0 +1,551 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("2C9463D8-4EC4-4622-8917-D486321A9443")] +[NativeTypeName("struct IHttpContext4 : IHttpContext3")] +[NativeInheritance("IHttpContext3")] +public unsafe partial struct IHttpContext4 : IHttpContext4.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpContext4)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpSite* GetSite() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpApplication* GetApplication() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpConnection* GetConnection() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpRequest* GetRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public IHttpResponse* GetResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public BOOL GetResponseHeadersSent() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public IHttpUser* GetUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public void IndicateCompletion(REQUEST_NOTIFICATION_STATUS notificationStatus) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpContext4*)Unsafe.AsPointer(ref this), notificationStatus); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpContext4*)Unsafe.AsPointer(ref this), cbBytes); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void DisableNotifications([NativeTypeName("DWORD")] uint dwNotifications, [NativeTypeName("DWORD")] uint dwPostNotifications) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpContext4*)Unsafe.AsPointer(ref this), dwNotifications, dwPostNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public BOOL GetNextNotification(REQUEST_NOTIFICATION_STATUS status, [NativeTypeName("DWORD *")] uint* pdwNotification, BOOL* pfIsPostNotification, CHttpModule** ppModuleInfo, IHttpEventProvider** ppRequestOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpContext4*)Unsafe.AsPointer(ref this), status, pdwNotification, pfIsPostNotification, ppModuleInfo, ppRequestOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetIsLastNotification(REQUEST_NOTIFICATION_STATUS status) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpContext4*)Unsafe.AsPointer(ref this), status); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public HRESULT ExecuteRequest(BOOL fAsync, IHttpContext* pHttpContext, [NativeTypeName("DWORD")] uint dwExecuteFlags, IHttpUser* pHttpUser, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpContext4*)Unsafe.AsPointer(ref this), fAsync, pHttpContext, dwExecuteFlags, pHttpUser, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("DWORD")] + public uint GetExecuteFlags() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCSTR *")] sbyte** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpContext4*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT GetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR *")] char** ppszValue, [NativeTypeName("DWORD *")] uint* pcchValueLength) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpContext4*)Unsafe.AsPointer(ref this), pszVariableName, ppszValue, pcchValueLength); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT SetServerVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName, [NativeTypeName("PCWSTR")] char* pszVariableValue) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpContext4*)Unsafe.AsPointer(ref this), pszVariableName, pszVariableValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public void* AllocateRequestMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpContext4*)Unsafe.AsPointer(ref this), cbAllocation); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public IHttpUrlInfo* GetUrlInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public IMetadataInfo* GetMetadata() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + [return: NativeTypeName("PCWSTR")] + public char* GetPhysicalPath([NativeTypeName("DWORD *")] uint* pcchPhysicalPath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpContext4*)Unsafe.AsPointer(ref this), pcchPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptName([NativeTypeName("DWORD *")] uint* pcchScriptName = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpContext4*)Unsafe.AsPointer(ref this), pcchScriptName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptTranslated([NativeTypeName("DWORD *")] uint* pcchScriptTranslated = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpContext4*)Unsafe.AsPointer(ref this), pcchScriptTranslated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public IScriptMapInfo* GetScriptMap() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public void SetRequestHandled() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public IHttpFileInfo* GetFileInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public HRESULT MapPath([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD *")] uint* pcbPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpContext4*)Unsafe.AsPointer(ref this), pszUrl, pszPhysicalPath, pcbPhysicalPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput, BOOL* pfCompletionExpected) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpContext4*)Unsafe.AsPointer(ref this), pCustomOutput, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public IHttpContext* GetParentContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public IHttpContext* GetRootContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT CloneContext([NativeTypeName("DWORD")] uint dwCloneFlags, IHttpContext** ppHttpContext) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpContext4*)Unsafe.AsPointer(ref this), dwCloneFlags, ppHttpContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(32)] + public HRESULT ReleaseClonedContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[32]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(33)] + public HRESULT GetCurrentExecutionStats([NativeTypeName("DWORD *")] uint* pdwNotification, [NativeTypeName("DWORD *")] uint* pdwNotificationStartTickCount = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwModuleStartTickCount = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotification = null, [NativeTypeName("DWORD *")] uint* pdwAsyncNotificationStartTickCount = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[33]))((IHttpContext4*)Unsafe.AsPointer(ref this), pdwNotification, pdwNotificationStartTickCount, ppszModule, pdwModuleStartTickCount, pdwAsyncNotification, pdwAsyncNotificationStartTickCount); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(34)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[34]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(35)] + public HRESULT GetServerVarChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("DWORD *")] uint* pdwVariableSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppVariableNameSnapshot, [NativeTypeName("PCWSTR **")] char*** ppVariableValueSnapshot, [NativeTypeName("DWORD *")] uint* pdwDiffedVariables, [NativeTypeName("DWORD **")] uint** ppDiffedVariableIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[35]))((IHttpContext4*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, pdwVariableSnapshot, ppVariableNameSnapshot, ppVariableValueSnapshot, pdwDiffedVariables, ppDiffedVariableIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(36)] + public HRESULT CancelIo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[36]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(37)] + public HRESULT MapHandler([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("PCSTR")] sbyte* pszVerb, IScriptMapInfo** ppScriptMap, [Optional] BOOL fIgnoreWildcardMappings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[37]))((IHttpContext4*)Unsafe.AsPointer(ref this), dwSiteId, pszSiteName, pszUrl, pszVerb, ppScriptMap, fIgnoreWildcardMappings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(38)] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public HRESULT GetExtendedInterface(HTTP_CONTEXT_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[38]))((IHttpContext4*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(39)] + public IHttpUser* GetOriginalUser() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[39]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(40)] + public INamedContextContainer* GetNamedContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[40]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(41)] + public void EnableFullDuplex() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[41]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(42)] + public HRESULT InheritServerVariable([NativeTypeName("PCSTR")] sbyte* szName, [Optional] BOOL fFailIfNotExist) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[42]))((IHttpContext4*)Unsafe.AsPointer(ref this), szName, fFailIfNotExist); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(43)] + public HRESULT PostCompletion([NativeTypeName("DWORD")] uint cbBytes, [NativeTypeName("LPOVERLAPPED_COMPLETION_ROUTINE")] delegate* unmanaged pfnCompletionRoutine, void* pvCompletionContext) + { + return ((delegate* unmanaged[MemberFunction], void*, int>)(lpVtbl[43]))((IHttpContext4*)Unsafe.AsPointer(ref this), cbBytes, pfnCompletionRoutine, pvCompletionContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(44)] + [return: NativeTypeName("ULONGLONG")] + public ulong GetRequestStartTime() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[44]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(45)] + [return: NativeTypeName("ULONGLONG")] + public ulong GetRequestElapsedTime() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[45]))((IHttpContext4*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpContext3.Interface + { + [VtblIndex(44)] + [return: NativeTypeName("ULONGLONG")] + ulong GetRequestStartTime(); + + [VtblIndex(45)] + [return: NativeTypeName("ULONGLONG")] + ulong GetRequestElapsedTime(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpSite *()")] + public delegate* unmanaged[MemberFunction] GetSite; + + [NativeTypeName("IHttpApplication *()")] + public delegate* unmanaged[MemberFunction] GetApplication; + + [NativeTypeName("IHttpConnection *()")] + public delegate* unmanaged[MemberFunction] GetConnection; + + [NativeTypeName("IHttpRequest *()")] + public delegate* unmanaged[MemberFunction] GetRequest; + + [NativeTypeName("IHttpResponse *()")] + public delegate* unmanaged[MemberFunction] GetResponse; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetResponseHeadersSent; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetUser; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] IndicateCompletion; + + [NativeTypeName("HRESULT (DWORD)")] + public delegate* unmanaged[MemberFunction] PostCompletion; + + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] DisableNotifications; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS, DWORD *, BOOL *, CHttpModule **, IHttpEventProvider **)")] + public delegate* unmanaged[MemberFunction] GetNextNotification; + + [NativeTypeName("BOOL (REQUEST_NOTIFICATION_STATUS)")] + public delegate* unmanaged[MemberFunction] GetIsLastNotification; + + [NativeTypeName("HRESULT (BOOL, IHttpContext *, DWORD, IHttpUser *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ExecuteRequest; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetExecuteFlags; + + [NativeTypeName("HRESULT (PCSTR, PCSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetServerVariable1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetServerVariable; + + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateRequestMemory; + + [NativeTypeName("IHttpUrlInfo *()")] + public delegate* unmanaged[MemberFunction] GetUrlInfo; + + [NativeTypeName("IMetadataInfo *()")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetPhysicalPath; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetScriptName; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetScriptTranslated; + + [NativeTypeName("IScriptMapInfo *() const")] + public delegate* unmanaged[MemberFunction] GetScriptMap; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetRequestHandled; + + [NativeTypeName("IHttpFileInfo *() const")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR, PWSTR, DWORD *)")] + public delegate* unmanaged[MemberFunction] MapPath; + + [NativeTypeName("HRESULT (ICustomNotificationProvider *, BOOL *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetParentContext; + + [NativeTypeName("IHttpContext *() const")] + public delegate* unmanaged[MemberFunction] GetRootContext; + + [NativeTypeName("HRESULT (DWORD, IHttpContext **)")] + public delegate* unmanaged[MemberFunction] CloneContext; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReleaseClonedContext; + + [NativeTypeName("HRESULT (DWORD *, DWORD *, PCWSTR *, DWORD *, DWORD *, DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetCurrentExecutionStats; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (DWORD, DWORD *, DWORD *, PCSTR **, PCWSTR **, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetServerVarChanges; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] CancelIo; + + [NativeTypeName("HRESULT (DWORD, PCWSTR, PCWSTR, PCSTR, IScriptMapInfo **, BOOL)")] + public delegate* unmanaged[MemberFunction] MapHandler; + + [NativeTypeName("HRESULT (HTTP_CONTEXT_INTERFACE_VERSION, PVOID *)")] + [Obsolete("This method is deprecated. Use the HttpGetExtendedInterface helper function instead.")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + + [NativeTypeName("IHttpUser *() const")] + public delegate* unmanaged[MemberFunction] GetOriginalUser; + + [NativeTypeName("INamedContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetNamedContextContainer; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] EnableFullDuplex; + + [NativeTypeName("HRESULT (PCSTR, BOOL)")] + public delegate* unmanaged[MemberFunction] InheritServerVariable; + + [NativeTypeName("HRESULT (DWORD, LPOVERLAPPED_COMPLETION_ROUTINE, void *)")] + public delegate* unmanaged[MemberFunction], void*, int> PostCompletion1; + + [NativeTypeName("ULONGLONG ()")] + public delegate* unmanaged[MemberFunction] GetRequestStartTime; + + [NativeTypeName("ULONGLONG ()")] + public delegate* unmanaged[MemberFunction] GetRequestElapsedTime; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpEventProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpEventProvider.cs new file mode 100644 index 0000000000..86311a2ac9 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpEventProvider.cs @@ -0,0 +1,41 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("6F3F657D-2FB8-43C6-A096-5064B41F0580")] +public unsafe partial struct IHttpEventProvider : IHttpEventProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpEventProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpEventProvider*)Unsafe.AsPointer(ref this), hrError); + } + + public interface Interface + { + [VtblIndex(0)] + void SetErrorStatus(HRESULT hrError); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpFileInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpFileInfo.cs new file mode 100644 index 0000000000..1e1fb79f28 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpFileInfo.cs @@ -0,0 +1,314 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("71E95595-8C74-44D9-88A9-F5112D5F5900")] +[NativeTypeName("struct IHttpFileInfo : IHttpCacheSpecificData")] +[NativeInheritance("IHttpCacheSpecificData")] +public unsafe partial struct IHttpFileInfo : IHttpFileInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpFileInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpCacheKey* GetCacheKey() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void ReferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void DereferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void ResetTTL() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementTTL(BOOL* pfTTLExpired) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), pfTTLExpired); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void SetFlushed() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public BOOL GetFlushed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + [return: NativeTypeName("DWORD")] + public uint GetAttributes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public void GetSize(ULARGE_INTEGER* pliSize) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), pliSize); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("const BYTE *")] + public byte* GetFileBuffer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HANDLE GetFileHandle() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + [return: NativeTypeName("PCWSTR")] + public char* GetFilePath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetETag(ushort* pcchETag = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), pcchETag); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void GetLastModifiedTime(FILETIME* pFileTime) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), pFileTime); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetLastModifiedString() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public BOOL GetHttpCacheAllowed([NativeTypeName("DWORD *")] uint* pSecondsToLive) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), pSecondsToLive); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT AccessCheck(HANDLE hUserToken, [NativeTypeName("PSID")] void* pUserSid) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), hUserToken, pUserSid); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HANDLE GetVrToken() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + [return: NativeTypeName("PCWSTR")] + public char* GetVrPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpFileInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public BOOL CheckIfFileHasChanged(HANDLE hUserToken) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpFileInfo*)Unsafe.AsPointer(ref this), hUserToken); + } + + public interface Interface : IHttpCacheSpecificData.Interface + { + [VtblIndex(7)] + [return: NativeTypeName("DWORD")] + uint GetAttributes(); + + [VtblIndex(8)] + void GetSize(ULARGE_INTEGER* pliSize); + + [VtblIndex(9)] + [return: NativeTypeName("const BYTE *")] + byte* GetFileBuffer(); + + [VtblIndex(10)] + HANDLE GetFileHandle(); + + [VtblIndex(11)] + [return: NativeTypeName("PCWSTR")] + char* GetFilePath(); + + [VtblIndex(12)] + [return: NativeTypeName("PCSTR")] + sbyte* GetETag(ushort* pcchETag = null); + + [VtblIndex(13)] + void GetLastModifiedTime(FILETIME* pFileTime); + + [VtblIndex(14)] + [return: NativeTypeName("PCSTR")] + sbyte* GetLastModifiedString(); + + [VtblIndex(15)] + BOOL GetHttpCacheAllowed([NativeTypeName("DWORD *")] uint* pSecondsToLive); + + [VtblIndex(16)] + HRESULT AccessCheck(HANDLE hUserToken, [NativeTypeName("PSID")] void* pUserSid); + + [VtblIndex(17)] + HANDLE GetVrToken(); + + [VtblIndex(18)] + [return: NativeTypeName("PCWSTR")] + char* GetVrPath(); + + [VtblIndex(19)] + IHttpModuleContextContainer* GetModuleContextContainer(); + + [VtblIndex(20)] + BOOL CheckIfFileHasChanged(HANDLE hUserToken); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpCacheKey *() const")] + public delegate* unmanaged[MemberFunction] GetCacheKey; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetTTL; + + [NativeTypeName("void (BOOL *)")] + public delegate* unmanaged[MemberFunction] DecrementTTL; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetFlushed; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetFlushed; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetAttributes; + + [NativeTypeName("void (ULARGE_INTEGER *) const")] + public delegate* unmanaged[MemberFunction] GetSize; + + [NativeTypeName("const BYTE *() const")] + public delegate* unmanaged[MemberFunction] GetFileBuffer; + + [NativeTypeName("HANDLE () const")] + public delegate* unmanaged[MemberFunction] GetFileHandle; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetFilePath; + + [NativeTypeName("PCSTR (USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetETag; + + [NativeTypeName("void (FILETIME *) const")] + public delegate* unmanaged[MemberFunction] GetLastModifiedTime; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetLastModifiedString; + + [NativeTypeName("BOOL (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetHttpCacheAllowed; + + [NativeTypeName("HRESULT (HANDLE, PSID)")] + public delegate* unmanaged[MemberFunction] AccessCheck; + + [NativeTypeName("HANDLE () const")] + public delegate* unmanaged[MemberFunction] GetVrToken; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetVrPath; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("BOOL (HANDLE)")] + public delegate* unmanaged[MemberFunction] CheckIfFileHasChanged; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpFileMonitor.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpFileMonitor.cs new file mode 100644 index 0000000000..7fd5705317 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpFileMonitor.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("985422DA-B0CF-473B-BA9E-8148CEB3E240")] +public unsafe partial struct IHttpFileMonitor : IHttpFileMonitor.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpFileMonitor)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpFileMonitor*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void DereferenceFileMonitor() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpFileMonitor*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpModuleContextContainer* GetModuleContextContainer(); + + [VtblIndex(1)] + void DereferenceFileMonitor(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceFileMonitor; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainer.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainer.cs new file mode 100644 index 0000000000..038c207eb5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainer.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("D7FAD7C9-AA27-4AB9-BD60-E55CCBA3F5DC")] +public unsafe partial struct IHttpModuleContextContainer : IHttpModuleContextContainer.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpModuleContextContainer)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpStoredContext* GetModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpModuleContextContainer*)Unsafe.AsPointer(ref this), moduleId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetModuleContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpModuleContextContainer*)Unsafe.AsPointer(ref this), ppStoredContext, moduleId); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpStoredContext* GetModuleContext([NativeTypeName("HTTP_MODULE_ID")] void* moduleId); + + [VtblIndex(1)] + HRESULT SetModuleContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("HTTP_MODULE_ID")] void* moduleId); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpStoredContext *(HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] GetModuleContext; + + [NativeTypeName("HRESULT (IHttpStoredContext *, HTTP_MODULE_ID)")] + public delegate* unmanaged[MemberFunction] SetModuleContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleFactory.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleFactory.cs new file mode 100644 index 0000000000..53b8a91b78 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleFactory.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("BA32D330-9EA8-4B9E-89F1-8C76A323277F")] +public unsafe partial struct IHttpModuleFactory : IHttpModuleFactory.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpModuleFactory)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT GetHttpModule(CHttpModule** ppModule, IModuleAllocator* pAllocator) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpModuleFactory*)Unsafe.AsPointer(ref this), ppModule, pAllocator); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void Terminate() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpModuleFactory*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + HRESULT GetHttpModule(CHttpModule** ppModule, IModuleAllocator* pAllocator); + + [VtblIndex(1)] + void Terminate(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (CHttpModule **, IModuleAllocator *)")] + public delegate* unmanaged[MemberFunction] GetHttpModule; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Terminate; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo.cs new file mode 100644 index 0000000000..0eb4685073 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo.cs @@ -0,0 +1,115 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("07E5BEB3-B798-459D-A98A-E6C485B2B3BC")] +public unsafe partial struct IHttpModuleRegistrationInfo : IHttpModuleRegistrationInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpModuleRegistrationInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_MODULE_ID")] + public void* GetId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT SetRequestNotifications(IHttpModuleFactory* pModuleFactory, [NativeTypeName("DWORD")] uint dwRequestNotifications, [NativeTypeName("DWORD")] uint dwPostRequestNotifications) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this), pModuleFactory, dwRequestNotifications, dwPostRequestNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetGlobalNotifications(CGlobalModule* pGlobalModule, [NativeTypeName("DWORD")] uint dwGlobalNotifications) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this), pGlobalModule, dwGlobalNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetPriorityForRequestNotification([NativeTypeName("DWORD")] uint dwRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriority) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this), dwRequestNotification, pszPriority); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetPriorityForGlobalNotification([NativeTypeName("DWORD")] uint dwGlobalNotification, [NativeTypeName("PCWSTR")] char* pszPriority) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpModuleRegistrationInfo*)Unsafe.AsPointer(ref this), dwGlobalNotification, pszPriority); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + char* GetName(); + + [VtblIndex(1)] + [return: NativeTypeName("HTTP_MODULE_ID")] + void* GetId(); + + [VtblIndex(2)] + HRESULT SetRequestNotifications(IHttpModuleFactory* pModuleFactory, [NativeTypeName("DWORD")] uint dwRequestNotifications, [NativeTypeName("DWORD")] uint dwPostRequestNotifications); + + [VtblIndex(3)] + HRESULT SetGlobalNotifications(CGlobalModule* pGlobalModule, [NativeTypeName("DWORD")] uint dwGlobalNotifications); + + [VtblIndex(4)] + HRESULT SetPriorityForRequestNotification([NativeTypeName("DWORD")] uint dwRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriority); + + [VtblIndex(5)] + HRESULT SetPriorityForGlobalNotification([NativeTypeName("DWORD")] uint dwGlobalNotification, [NativeTypeName("PCWSTR")] char* pszPriority); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetName; + + [NativeTypeName("HTTP_MODULE_ID () const")] + public delegate* unmanaged[MemberFunction] GetId; + + [NativeTypeName("HRESULT (IHttpModuleFactory *, DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] SetRequestNotifications; + + [NativeTypeName("HRESULT (CGlobalModule *, DWORD)")] + public delegate* unmanaged[MemberFunction] SetGlobalNotifications; + + [NativeTypeName("HRESULT (DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForRequestNotification; + + [NativeTypeName("HRESULT (DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForGlobalNotification; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2.cs new file mode 100644 index 0000000000..81ee9777dc --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2.cs @@ -0,0 +1,111 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("4FD11CBF-8CC5-418E-8000-C9E765F88533")] +[NativeTypeName("struct IHttpModuleRegistrationInfo2 : IHttpModuleRegistrationInfo")] +[NativeInheritance("IHttpModuleRegistrationInfo")] +public unsafe partial struct IHttpModuleRegistrationInfo2 : IHttpModuleRegistrationInfo2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpModuleRegistrationInfo2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_MODULE_ID")] + public void* GetId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT SetRequestNotifications(IHttpModuleFactory* pModuleFactory, [NativeTypeName("DWORD")] uint dwRequestNotifications, [NativeTypeName("DWORD")] uint dwPostRequestNotifications) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this), pModuleFactory, dwRequestNotifications, dwPostRequestNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetGlobalNotifications(CGlobalModule* pGlobalModule, [NativeTypeName("DWORD")] uint dwGlobalNotifications) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this), pGlobalModule, dwGlobalNotifications); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetPriorityForRequestNotification([NativeTypeName("DWORD")] uint dwRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriority) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this), dwRequestNotification, pszPriority); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetPriorityForGlobalNotification([NativeTypeName("DWORD")] uint dwGlobalNotification, [NativeTypeName("PCWSTR")] char* pszPriority) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this), dwGlobalNotification, pszPriority); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT SetPriorityForPostRequestNotification([NativeTypeName("DWORD")] uint dwPostRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriority) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpModuleRegistrationInfo2*)Unsafe.AsPointer(ref this), dwPostRequestNotification, pszPriority); + } + + public interface Interface : IHttpModuleRegistrationInfo.Interface + { + [VtblIndex(6)] + HRESULT SetPriorityForPostRequestNotification([NativeTypeName("DWORD")] uint dwPostRequestNotification, [NativeTypeName("PCWSTR")] char* pszPriority); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetName; + + [NativeTypeName("HTTP_MODULE_ID () const")] + public delegate* unmanaged[MemberFunction] GetId; + + [NativeTypeName("HRESULT (IHttpModuleFactory *, DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] SetRequestNotifications; + + [NativeTypeName("HRESULT (CGlobalModule *, DWORD)")] + public delegate* unmanaged[MemberFunction] SetGlobalNotifications; + + [NativeTypeName("HRESULT (DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForRequestNotification; + + [NativeTypeName("HRESULT (DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForGlobalNotification; + + [NativeTypeName("HRESULT (DWORD, PCWSTR)")] + public delegate* unmanaged[MemberFunction] SetPriorityForPostRequestNotification; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfo.cs new file mode 100644 index 0000000000..99b1850aa8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfo.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("BDFC4C4A-12A4-4744-87D8-765EB320C59F")] +public unsafe partial struct IHttpPerfCounterInfo : IHttpPerfCounterInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpPerfCounterInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void IncrementCounter([NativeTypeName("DWORD")] uint dwCounterIndex, [NativeTypeName("DWORD")] uint dwValue = 1) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpPerfCounterInfo*)Unsafe.AsPointer(ref this), dwCounterIndex, dwValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void DecrementCounter([NativeTypeName("DWORD")] uint dwCounterIndex, [NativeTypeName("DWORD")] uint dwValue = 1) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpPerfCounterInfo*)Unsafe.AsPointer(ref this), dwCounterIndex, dwValue); + } + + public interface Interface + { + [VtblIndex(0)] + void IncrementCounter([NativeTypeName("DWORD")] uint dwCounterIndex, [NativeTypeName("DWORD")] uint dwValue = 1); + + [VtblIndex(1)] + void DecrementCounter([NativeTypeName("DWORD")] uint dwCounterIndex, [NativeTypeName("DWORD")] uint dwValue = 1); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] IncrementCounter; + + [NativeTypeName("void (DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] DecrementCounter; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest.cs new file mode 100644 index 0000000000..64ee537c8e --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest.cs @@ -0,0 +1,383 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("E8698F7E-576E-4CAC-A309-67435355FAEF")] +public unsafe partial struct IHttpRequest : IHttpRequest.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpRequest)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpRequest*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpRequest*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpRequest*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHttpMethod() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT SetHttpMethod([NativeTypeName("PCSTR")] sbyte* pszHttpMethod) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszHttpMethod); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT SetUrl([NativeTypeName("PCSTR")] sbyte* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT SetUrl([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpRequest*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetUrlChanged() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + [return: NativeTypeName("PCWSTR")] + public char* GetForwardedUrl() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetLocalAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetRemoteAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpRequest*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pcbBytesReceived, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT InsertEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpRequest*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + [return: NativeTypeName("DWORD")] + public uint GetRemainingEntityBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public void GetHttpVersion(ushort* pMajorVersion, ushort* pMinorVersion) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpRequest*)Unsafe.AsPointer(ref this), pMajorVersion, pMinorVersion); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetClientCertificate(HTTP_SSL_CLIENT_CERT_INFO** ppClientCertInfo, BOOL* pfClientCertNegotiated) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpRequest*)Unsafe.AsPointer(ref this), ppClientCertInfo, pfClientCertNegotiated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT NegotiateClientCertificate(BOOL fAsync, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpRequest*)Unsafe.AsPointer(ref this), fAsync, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("DWORD")] + public uint GetSiteId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpRequest*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[41]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[42]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpRequest*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_REQUEST *")] + HTTP_REQUEST_V2* GetRawHttpRequestConst(); + + [VtblIndex(1)] + [return: NativeTypeName("HTTP_REQUEST *")] + HTTP_REQUEST_V2* GetRawHttpRequest(); + + [VtblIndex(2)] + [return: NativeTypeName("PCSTR")] + sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null); + + [VtblIndex(3)] + [return: NativeTypeName("PCSTR")] + sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null); + + [VtblIndex(4)] + HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace); + + [VtblIndex(5)] + HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace); + + [VtblIndex(6)] + HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex); + + [VtblIndex(7)] + HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName); + + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + sbyte* GetHttpMethod(); + + [VtblIndex(9)] + HRESULT SetHttpMethod([NativeTypeName("PCSTR")] sbyte* pszHttpMethod); + + [VtblIndex(10)] + HRESULT SetUrl([NativeTypeName("PCSTR")] sbyte* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString); + + [VtblIndex(11)] + HRESULT SetUrl([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString); + + [VtblIndex(12)] + BOOL GetUrlChanged(); + + [VtblIndex(13)] + [return: NativeTypeName("PCWSTR")] + char* GetForwardedUrl(); + + [VtblIndex(14)] + [return: NativeTypeName("PSOCKADDR")] + SOCKADDR* GetLocalAddress(); + + [VtblIndex(15)] + [return: NativeTypeName("PSOCKADDR")] + SOCKADDR* GetRemoteAddress(); + + [VtblIndex(16)] + HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null); + + [VtblIndex(17)] + HRESULT InsertEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer); + + [VtblIndex(18)] + [return: NativeTypeName("DWORD")] + uint GetRemainingEntityBytes(); + + [VtblIndex(19)] + void GetHttpVersion(ushort* pMajorVersion, ushort* pMinorVersion); + + [VtblIndex(20)] + HRESULT GetClientCertificate(HTTP_SSL_CLIENT_CERT_INFO** ppClientCertInfo, BOOL* pfClientCertNegotiated); + + [VtblIndex(21)] + HRESULT NegotiateClientCertificate(BOOL fAsync, BOOL* pfCompletionPending = null); + + [VtblIndex(22)] + [return: NativeTypeName("DWORD")] + uint GetSiteId(); + + [VtblIndex(23)] + HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[41]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[42]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_REQUEST *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_REQUEST *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequest1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl1; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetUrlChanged; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetForwardedUrl; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetLocalAddress; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetRemoteAddress; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ReadEntityBody; + + [NativeTypeName("HRESULT (void *, DWORD)")] + public delegate* unmanaged[MemberFunction] InsertEntityBody; + + [NativeTypeName("DWORD ()")] + public delegate* unmanaged[MemberFunction] GetRemainingEntityBytes; + + [NativeTypeName("void (USHORT *, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHttpVersion; + + [NativeTypeName("HRESULT (HTTP_SSL_CLIENT_CERT_INFO **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetClientCertificate; + + [NativeTypeName("HRESULT (BOOL, BOOL *)")] + public delegate* unmanaged[MemberFunction] NegotiateClientCertificate; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetSiteId; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest2.cs new file mode 100644 index 0000000000..62da1bbe8b --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest2.cs @@ -0,0 +1,317 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("D9244AE1-51F8-4AA1-A66D-19277C33E610")] +[NativeTypeName("struct IHttpRequest2 : IHttpRequest")] +[NativeInheritance("IHttpRequest")] +public unsafe partial struct IHttpRequest2 : IHttpRequest2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpRequest2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpRequest2*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpRequest2*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpRequest2*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHttpMethod() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT SetHttpMethod([NativeTypeName("PCSTR")] sbyte* pszHttpMethod) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszHttpMethod); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT SetUrl([NativeTypeName("PCSTR")] sbyte* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT SetUrl([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetUrlChanged() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + [return: NativeTypeName("PCWSTR")] + public char* GetForwardedUrl() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetLocalAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetRemoteAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pcbBytesReceived, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT InsertEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + [return: NativeTypeName("DWORD")] + public uint GetRemainingEntityBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public void GetHttpVersion(ushort* pMajorVersion, ushort* pMinorVersion) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpRequest2*)Unsafe.AsPointer(ref this), pMajorVersion, pMinorVersion); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetClientCertificate(HTTP_SSL_CLIENT_CERT_INFO** ppClientCertInfo, BOOL* pfClientCertNegotiated) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpRequest2*)Unsafe.AsPointer(ref this), ppClientCertInfo, pfClientCertNegotiated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT NegotiateClientCertificate(BOOL fAsync, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpRequest2*)Unsafe.AsPointer(ref this), fAsync, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("DWORD")] + public uint GetSiteId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpRequest2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[41]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[42]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpRequest2*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT GetChannelBindingToken([NativeTypeName("PBYTE *")] byte** ppToken, [NativeTypeName("DWORD *")] uint* pTokenSize) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpRequest2*)Unsafe.AsPointer(ref this), ppToken, pTokenSize); + } + + public interface Interface : IHttpRequest.Interface + { + [VtblIndex(24)] + HRESULT GetChannelBindingToken([NativeTypeName("PBYTE *")] byte** ppToken, [NativeTypeName("DWORD *")] uint* pTokenSize); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_REQUEST *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_REQUEST *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequest1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl1; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetUrlChanged; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetForwardedUrl; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetLocalAddress; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetRemoteAddress; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ReadEntityBody; + + [NativeTypeName("HRESULT (void *, DWORD)")] + public delegate* unmanaged[MemberFunction] InsertEntityBody; + + [NativeTypeName("DWORD ()")] + public delegate* unmanaged[MemberFunction] GetRemainingEntityBytes; + + [NativeTypeName("void (USHORT *, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHttpVersion; + + [NativeTypeName("HRESULT (HTTP_SSL_CLIENT_CERT_INFO **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetClientCertificate; + + [NativeTypeName("HRESULT (BOOL, BOOL *)")] + public delegate* unmanaged[MemberFunction] NegotiateClientCertificate; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetSiteId; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("HRESULT (PBYTE *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetChannelBindingToken; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest3.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest3.cs new file mode 100644 index 0000000000..ae414b8aac --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest3.cs @@ -0,0 +1,326 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("B32E4E0F-4057-4FEB-AEAB-7B69C03C6314")] +[NativeTypeName("struct IHttpRequest3 : IHttpRequest2")] +[NativeInheritance("IHttpRequest2")] +public unsafe partial struct IHttpRequest3 : IHttpRequest3.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpRequest3)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpRequest3*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpRequest3*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpRequest3*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHttpMethod() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT SetHttpMethod([NativeTypeName("PCSTR")] sbyte* pszHttpMethod) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszHttpMethod); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT SetUrl([NativeTypeName("PCSTR")] sbyte* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT SetUrl([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetUrlChanged() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + [return: NativeTypeName("PCWSTR")] + public char* GetForwardedUrl() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetLocalAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetRemoteAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pcbBytesReceived, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT InsertEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + [return: NativeTypeName("DWORD")] + public uint GetRemainingEntityBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public void GetHttpVersion(ushort* pMajorVersion, ushort* pMinorVersion) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pMajorVersion, pMinorVersion); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetClientCertificate(HTTP_SSL_CLIENT_CERT_INFO** ppClientCertInfo, BOOL* pfClientCertNegotiated) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpRequest3*)Unsafe.AsPointer(ref this), ppClientCertInfo, pfClientCertNegotiated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT NegotiateClientCertificate(BOOL fAsync, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpRequest3*)Unsafe.AsPointer(ref this), fAsync, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("DWORD")] + public uint GetSiteId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpRequest3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[41]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[42]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpRequest3*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT GetChannelBindingToken([NativeTypeName("PBYTE *")] byte** ppToken, [NativeTypeName("DWORD *")] uint* pTokenSize) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpRequest3*)Unsafe.AsPointer(ref this), ppToken, pTokenSize); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[25]))((IHttpRequest3*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pfnCompletionCallback, pvCompletionContext, pcbBytesReceived, pfCompletionPending); + } + + public interface Interface : IHttpRequest2.Interface + { + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_REQUEST *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_REQUEST *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequest1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl1; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetUrlChanged; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetForwardedUrl; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetLocalAddress; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetRemoteAddress; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ReadEntityBody; + + [NativeTypeName("HRESULT (void *, DWORD)")] + public delegate* unmanaged[MemberFunction] InsertEntityBody; + + [NativeTypeName("DWORD ()")] + public delegate* unmanaged[MemberFunction] GetRemainingEntityBytes; + + [NativeTypeName("void (USHORT *, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHttpVersion; + + [NativeTypeName("HRESULT (HTTP_SSL_CLIENT_CERT_INFO **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetClientCertificate; + + [NativeTypeName("HRESULT (BOOL, BOOL *)")] + public delegate* unmanaged[MemberFunction] NegotiateClientCertificate; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetSiteId; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("HRESULT (PBYTE *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetChannelBindingToken; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> ReadEntityBody1; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest4.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest4.cs new file mode 100644 index 0000000000..5dbbd6f122 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpRequest4.cs @@ -0,0 +1,339 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("3816F517-F631-49F0-8B51-16D6F0C6FFB2")] +[NativeTypeName("struct IHttpRequest4 : IHttpRequest3")] +[NativeInheritance("IHttpRequest3")] +public unsafe partial struct IHttpRequest4 : IHttpRequest4.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpRequest4)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_REQUEST *")] + public HTTP_REQUEST_V2* GetRawHttpRequest() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpRequest4*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpRequest4*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpRequest4*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHttpMethod() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT SetHttpMethod([NativeTypeName("PCSTR")] sbyte* pszHttpMethod) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszHttpMethod); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT SetUrl([NativeTypeName("PCSTR")] sbyte* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public HRESULT SetUrl([NativeTypeName("PCWSTR")] char* pszUrl, [NativeTypeName("DWORD")] uint cchUrl, BOOL fResetQueryString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pszUrl, cchUrl, fResetQueryString); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public BOOL GetUrlChanged() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + [return: NativeTypeName("PCWSTR")] + public char* GetForwardedUrl() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetLocalAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + [return: NativeTypeName("PSOCKADDR")] + public SOCKADDR* GetRemoteAddress() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pcbBytesReceived, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT InsertEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + [return: NativeTypeName("DWORD")] + public uint GetRemainingEntityBytes() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public void GetHttpVersion(ushort* pMajorVersion, ushort* pMinorVersion) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pMajorVersion, pMinorVersion); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetClientCertificate(HTTP_SSL_CLIENT_CERT_INFO** ppClientCertInfo, BOOL* pfClientCertNegotiated) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpRequest4*)Unsafe.AsPointer(ref this), ppClientCertInfo, pfClientCertNegotiated); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT NegotiateClientCertificate(BOOL fAsync, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpRequest4*)Unsafe.AsPointer(ref this), fAsync, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + [return: NativeTypeName("DWORD")] + public uint GetSiteId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpRequest4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[41]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[42]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpRequest4*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT GetChannelBindingToken([NativeTypeName("PBYTE *")] byte** ppToken, [NativeTypeName("DWORD *")] uint* pTokenSize) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpRequest4*)Unsafe.AsPointer(ref this), ppToken, pTokenSize); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[25]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, pfnCompletionCallback, pvCompletionContext, pcbBytesReceived, pfCompletionPending); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("ULONG")] uint ulFlags, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpRequest4*)Unsafe.AsPointer(ref this), pvBuffer, cbBuffer, fAsync, ulFlags, pcbBytesReceived, pfCompletionPending); + } + + public interface Interface : IHttpRequest3.Interface + { + [VtblIndex(26)] + HRESULT ReadEntityBody(void* pvBuffer, [NativeTypeName("DWORD")] uint cbBuffer, BOOL fAsync, [NativeTypeName("ULONG")] uint ulFlags, [NativeTypeName("DWORD *")] uint* pcbBytesReceived, BOOL* pfCompletionPending = null); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_REQUEST *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_REQUEST *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequest1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] SetHttpMethod; + + [NativeTypeName("HRESULT (PCSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetUrl1; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetUrlChanged; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetForwardedUrl; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetLocalAddress; + + [NativeTypeName("PSOCKADDR () const")] + public delegate* unmanaged[MemberFunction] GetRemoteAddress; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ReadEntityBody; + + [NativeTypeName("HRESULT (void *, DWORD)")] + public delegate* unmanaged[MemberFunction] InsertEntityBody; + + [NativeTypeName("DWORD ()")] + public delegate* unmanaged[MemberFunction] GetRemainingEntityBytes; + + [NativeTypeName("void (USHORT *, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHttpVersion; + + [NativeTypeName("HRESULT (HTTP_SSL_CLIENT_CERT_INFO **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetClientCertificate; + + [NativeTypeName("HRESULT (BOOL, BOOL *)")] + public delegate* unmanaged[MemberFunction] NegotiateClientCertificate; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetSiteId; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("HRESULT (PBYTE *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetChannelBindingToken; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> ReadEntityBody1; + + [NativeTypeName("HRESULT (void *, DWORD, BOOL, ULONG, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] ReadEntityBody2; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse.cs new file mode 100644 index 0000000000..290e860b3d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse.cs @@ -0,0 +1,429 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("7E1C6B38-628F-4E6C-95DC-41237EB7F95E")] +public unsafe partial struct IHttpResponse : IHttpResponse.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpResponse)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpCachePolicy* GetCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetStatus(ushort statusCode, [NativeTypeName("PCSTR")] sbyte* pszReason, [Optional] ushort uSubStatus, [Optional, DefaultParameterValue(0)] HRESULT hrErrorToReport, [Optional] IAppHostConfigException* pException, [Optional] BOOL fTrySkipCustomErrors) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpResponse*)Unsafe.AsPointer(ref this), statusCode, pszReason, uSubStatus, hrErrorToReport, pException, fTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpResponse*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpResponse*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpResponse*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpResponse*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpResponse*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpResponse*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void Clear() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public void ClearHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetNeedDisconnect() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void ResetConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void DisableKernelCache([NativeTypeName("ULONG")] uint reason = 9) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpResponse*)Unsafe.AsPointer(ref this), reason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public BOOL GetKernelCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public void SuppressHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public BOOL GetHeadersSuppressed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpResponse*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT Redirect([NativeTypeName("PCSTR")] sbyte* pszUrl, [Optional, DefaultParameterValue(1)] BOOL fResetStatusCode, [Optional] BOOL fIncludeParameters) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpResponse*)Unsafe.AsPointer(ref this), pszUrl, fResetStatusCode, fIncludeParameters); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT WriteEntityChunkByReference(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("LONG")] int lInsertPosition = -1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpResponse*)Unsafe.AsPointer(ref this), pDataChunk, lInsertPosition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpResponse*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public void DisableBuffering() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public void GetStatus(ushort* pStatusCode, ushort* pSubStatus = null, [NativeTypeName("PCSTR *")] sbyte** ppszReason = null, ushort* pcchReason = null, HRESULT* phrErrorToReport = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwNotification = null, IAppHostConfigException** ppException = null, BOOL* pfTrySkipCustomErrors = null) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpResponse*)Unsafe.AsPointer(ref this), pStatusCode, pSubStatus, ppszReason, pcchReason, phrErrorToReport, ppszModule, pdwNotification, ppException, pfTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT SetErrorDescription([NativeTypeName("PCWSTR")] char* pszDescription, [NativeTypeName("DWORD")] uint cchDescription, [Optional, DefaultParameterValue(1)] BOOL fHtmlEncode) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpResponse*)Unsafe.AsPointer(ref this), pszDescription, cchDescription, fHtmlEncode); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + [return: NativeTypeName("PCWSTR")] + public char* GetErrorDescription([NativeTypeName("DWORD *")] uint* pcchDescription = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpResponse*)Unsafe.AsPointer(ref this), pcchDescription); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[30]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[31]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpResponse*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public void CloseConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpResponse*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_RESPONSE *")] + HTTP_RESPONSE_V2* GetRawHttpRequestConst(); + + [VtblIndex(1)] + [return: NativeTypeName("HTTP_RESPONSE *")] + HTTP_RESPONSE_V2* GetRawHttpResponse(); + + [VtblIndex(2)] + IHttpCachePolicy* GetCachePolicy(); + + [VtblIndex(3)] + HRESULT SetStatus(ushort statusCode, [NativeTypeName("PCSTR")] sbyte* pszReason, [Optional] ushort uSubStatus, [Optional, DefaultParameterValue(0)] HRESULT hrErrorToReport, [Optional] IAppHostConfigException* pException, [Optional] BOOL fTrySkipCustomErrors); + + [VtblIndex(4)] + HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace); + + [VtblIndex(5)] + HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace); + + [VtblIndex(6)] + HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex); + + [VtblIndex(7)] + HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName); + + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null); + + [VtblIndex(9)] + [return: NativeTypeName("PCSTR")] + sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null); + + [VtblIndex(10)] + void Clear(); + + [VtblIndex(11)] + void ClearHeaders(); + + [VtblIndex(12)] + void SetNeedDisconnect(); + + [VtblIndex(13)] + void ResetConnection(); + + [VtblIndex(14)] + void DisableKernelCache([NativeTypeName("ULONG")] uint reason = 9); + + [VtblIndex(15)] + BOOL GetKernelCacheEnabled(); + + [VtblIndex(16)] + void SuppressHeaders(); + + [VtblIndex(17)] + BOOL GetHeadersSuppressed(); + + [VtblIndex(18)] + HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null); + + [VtblIndex(19)] + HRESULT Redirect([NativeTypeName("PCSTR")] sbyte* pszUrl, [Optional, DefaultParameterValue(1)] BOOL fResetStatusCode, [Optional] BOOL fIncludeParameters); + + [VtblIndex(20)] + HRESULT WriteEntityChunkByReference(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("LONG")] int lInsertPosition = -1); + + [VtblIndex(21)] + HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null); + + [VtblIndex(22)] + void DisableBuffering(); + + [VtblIndex(23)] + void GetStatus(ushort* pStatusCode, ushort* pSubStatus = null, [NativeTypeName("PCSTR *")] sbyte** ppszReason = null, ushort* pcchReason = null, HRESULT* phrErrorToReport = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwNotification = null, IAppHostConfigException** ppException = null, BOOL* pfTrySkipCustomErrors = null); + + [VtblIndex(24)] + HRESULT SetErrorDescription([NativeTypeName("PCWSTR")] char* pszDescription, [NativeTypeName("DWORD")] uint cchDescription, [Optional, DefaultParameterValue(1)] BOOL fHtmlEncode); + + [VtblIndex(25)] + [return: NativeTypeName("PCWSTR")] + char* GetErrorDescription([NativeTypeName("DWORD *")] uint* pcchDescription = null); + + [VtblIndex(26)] + HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[30]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[31]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices); + + [VtblIndex(27)] + void CloseConnection(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_RESPONSE *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_RESPONSE *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpResponse1; + + [NativeTypeName("IHttpCachePolicy *()")] + public delegate* unmanaged[MemberFunction] GetCachePolicy; + + [NativeTypeName("HRESULT (USHORT, PCSTR, USHORT, HRESULT, IAppHostConfigException *, BOOL)")] + public delegate* unmanaged[MemberFunction] SetStatus; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ClearHeaders; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetNeedDisconnect; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetConnection; + + [NativeTypeName("void (ULONG)")] + public delegate* unmanaged[MemberFunction] DisableKernelCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SuppressHeaders; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetHeadersSuppressed; + + [NativeTypeName("HRESULT (BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] Flush; + + [NativeTypeName("HRESULT (PCSTR, BOOL, BOOL)")] + public delegate* unmanaged[MemberFunction] Redirect; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, LONG)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunkByReference; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunks; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableBuffering; + + [NativeTypeName("void (USHORT *, USHORT *, PCSTR *, USHORT *, HRESULT *, PCWSTR *, DWORD *, IAppHostConfigException **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetStatus; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetErrorDescription; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetErrorDescription; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CloseConnection; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse2.cs new file mode 100644 index 0000000000..b0b38cee1c --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse2.cs @@ -0,0 +1,365 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("0822C871-F14E-4974-A1E6-5B3C1F09B76A")] +[NativeTypeName("struct IHttpResponse2 : IHttpResponse")] +[NativeInheritance("IHttpResponse")] +public unsafe partial struct IHttpResponse2 : IHttpResponse2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpResponse2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpCachePolicy* GetCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetStatus(ushort statusCode, [NativeTypeName("PCSTR")] sbyte* pszReason, [Optional] ushort uSubStatus, [Optional, DefaultParameterValue(0)] HRESULT hrErrorToReport, [Optional] IAppHostConfigException* pException, [Optional] BOOL fTrySkipCustomErrors) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpResponse2*)Unsafe.AsPointer(ref this), statusCode, pszReason, uSubStatus, hrErrorToReport, pException, fTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpResponse2*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpResponse2*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpResponse2*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void Clear() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public void ClearHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetNeedDisconnect() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void ResetConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void DisableKernelCache([NativeTypeName("ULONG")] uint reason = 9) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpResponse2*)Unsafe.AsPointer(ref this), reason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public BOOL GetKernelCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public void SuppressHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public BOOL GetHeadersSuppressed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpResponse2*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT Redirect([NativeTypeName("PCSTR")] sbyte* pszUrl, [Optional, DefaultParameterValue(1)] BOOL fResetStatusCode, [Optional] BOOL fIncludeParameters) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pszUrl, fResetStatusCode, fIncludeParameters); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT WriteEntityChunkByReference(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("LONG")] int lInsertPosition = -1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pDataChunk, lInsertPosition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public void DisableBuffering() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public void GetStatus(ushort* pStatusCode, ushort* pSubStatus = null, [NativeTypeName("PCSTR *")] sbyte** ppszReason = null, ushort* pcchReason = null, HRESULT* phrErrorToReport = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwNotification = null, IAppHostConfigException** ppException = null, BOOL* pfTrySkipCustomErrors = null) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pStatusCode, pSubStatus, ppszReason, pcchReason, phrErrorToReport, ppszModule, pdwNotification, ppException, pfTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT SetErrorDescription([NativeTypeName("PCWSTR")] char* pszDescription, [NativeTypeName("DWORD")] uint cchDescription, [Optional, DefaultParameterValue(1)] BOOL fHtmlEncode) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pszDescription, cchDescription, fHtmlEncode); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + [return: NativeTypeName("PCWSTR")] + public char* GetErrorDescription([NativeTypeName("DWORD *")] uint* pcchDescription = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pcchDescription); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[30]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[31]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpResponse2*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public void CloseConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpResponse2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[28]))((IHttpResponse2*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[29]))((IHttpResponse2*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + public interface Interface : IHttpResponse.Interface + { + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_RESPONSE *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_RESPONSE *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpResponse1; + + [NativeTypeName("IHttpCachePolicy *()")] + public delegate* unmanaged[MemberFunction] GetCachePolicy; + + [NativeTypeName("HRESULT (USHORT, PCSTR, USHORT, HRESULT, IAppHostConfigException *, BOOL)")] + public delegate* unmanaged[MemberFunction] SetStatus; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ClearHeaders; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetNeedDisconnect; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetConnection; + + [NativeTypeName("void (ULONG)")] + public delegate* unmanaged[MemberFunction] DisableKernelCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SuppressHeaders; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetHeadersSuppressed; + + [NativeTypeName("HRESULT (BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] Flush; + + [NativeTypeName("HRESULT (PCSTR, BOOL, BOOL)")] + public delegate* unmanaged[MemberFunction] Redirect; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, LONG)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunkByReference; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunks; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableBuffering; + + [NativeTypeName("void (USHORT *, USHORT *, PCSTR *, USHORT *, HRESULT *, PCWSTR *, DWORD *, IAppHostConfigException **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetStatus; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetErrorDescription; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetErrorDescription; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CloseConnection; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> WriteEntityChunks1; + + [NativeTypeName("HRESULT (BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> Flush1; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse3.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse3.cs new file mode 100644 index 0000000000..1cf3c1a578 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse3.cs @@ -0,0 +1,378 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("19578E49-D080-45DA-B673-96CB475D3C5D")] +[NativeTypeName("struct IHttpResponse3 : IHttpResponse2")] +[NativeInheritance("IHttpResponse2")] +public unsafe partial struct IHttpResponse3 : IHttpResponse3.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpResponse3)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpCachePolicy* GetCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetStatus(ushort statusCode, [NativeTypeName("PCSTR")] sbyte* pszReason, [Optional] ushort uSubStatus, [Optional, DefaultParameterValue(0)] HRESULT hrErrorToReport, [Optional] IAppHostConfigException* pException, [Optional] BOOL fTrySkipCustomErrors) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpResponse3*)Unsafe.AsPointer(ref this), statusCode, pszReason, uSubStatus, hrErrorToReport, pException, fTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpResponse3*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpResponse3*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpResponse3*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void Clear() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public void ClearHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetNeedDisconnect() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void ResetConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void DisableKernelCache([NativeTypeName("ULONG")] uint reason = 9) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpResponse3*)Unsafe.AsPointer(ref this), reason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public BOOL GetKernelCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public void SuppressHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public BOOL GetHeadersSuppressed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpResponse3*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT Redirect([NativeTypeName("PCSTR")] sbyte* pszUrl, [Optional, DefaultParameterValue(1)] BOOL fResetStatusCode, [Optional] BOOL fIncludeParameters) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszUrl, fResetStatusCode, fIncludeParameters); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT WriteEntityChunkByReference(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("LONG")] int lInsertPosition = -1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pDataChunk, lInsertPosition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public void DisableBuffering() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public void GetStatus(ushort* pStatusCode, ushort* pSubStatus = null, [NativeTypeName("PCSTR *")] sbyte** ppszReason = null, ushort* pcchReason = null, HRESULT* phrErrorToReport = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwNotification = null, IAppHostConfigException** ppException = null, BOOL* pfTrySkipCustomErrors = null) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pStatusCode, pSubStatus, ppszReason, pcchReason, phrErrorToReport, ppszModule, pdwNotification, ppException, pfTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT SetErrorDescription([NativeTypeName("PCWSTR")] char* pszDescription, [NativeTypeName("DWORD")] uint cchDescription, [Optional, DefaultParameterValue(1)] BOOL fHtmlEncode) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszDescription, cchDescription, fHtmlEncode); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + [return: NativeTypeName("PCWSTR")] + public char* GetErrorDescription([NativeTypeName("DWORD *")] uint* pcchDescription = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pcchDescription); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[30]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[31]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpResponse3*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public void CloseConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpResponse3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[28]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[29]))((IHttpResponse3*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public HRESULT PushPromise([NativeTypeName("PCSTR")] sbyte* pszVerb, [NativeTypeName("PCWSTR")] char* pwszPath, [NativeTypeName("PCWSTR")] char* pwszQuery, [NativeTypeName("DWORD")] uint cHeaders, [NativeTypeName("PCSTR *")] sbyte** rgHeaderNames, [NativeTypeName("PCSTR *")] sbyte** rgHeaderValues) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpResponse3*)Unsafe.AsPointer(ref this), pszVerb, pwszPath, pwszQuery, cHeaders, rgHeaderNames, rgHeaderValues); + } + + public interface Interface : IHttpResponse2.Interface + { + [VtblIndex(30)] + HRESULT PushPromise([NativeTypeName("PCSTR")] sbyte* pszVerb, [NativeTypeName("PCWSTR")] char* pwszPath, [NativeTypeName("PCWSTR")] char* pwszQuery, [NativeTypeName("DWORD")] uint cHeaders, [NativeTypeName("PCSTR *")] sbyte** rgHeaderNames, [NativeTypeName("PCSTR *")] sbyte** rgHeaderValues); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_RESPONSE *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_RESPONSE *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpResponse1; + + [NativeTypeName("IHttpCachePolicy *()")] + public delegate* unmanaged[MemberFunction] GetCachePolicy; + + [NativeTypeName("HRESULT (USHORT, PCSTR, USHORT, HRESULT, IAppHostConfigException *, BOOL)")] + public delegate* unmanaged[MemberFunction] SetStatus; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ClearHeaders; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetNeedDisconnect; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetConnection; + + [NativeTypeName("void (ULONG)")] + public delegate* unmanaged[MemberFunction] DisableKernelCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SuppressHeaders; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetHeadersSuppressed; + + [NativeTypeName("HRESULT (BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] Flush; + + [NativeTypeName("HRESULT (PCSTR, BOOL, BOOL)")] + public delegate* unmanaged[MemberFunction] Redirect; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, LONG)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunkByReference; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunks; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableBuffering; + + [NativeTypeName("void (USHORT *, USHORT *, PCSTR *, USHORT *, HRESULT *, PCWSTR *, DWORD *, IAppHostConfigException **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetStatus; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetErrorDescription; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetErrorDescription; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CloseConnection; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> WriteEntityChunks1; + + [NativeTypeName("HRESULT (BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> Flush1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR, PCWSTR, DWORD, PCSTR *, PCSTR *)")] + public delegate* unmanaged[MemberFunction] PushPromise; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse4.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse4.cs new file mode 100644 index 0000000000..a1141e9f3a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpResponse4.cs @@ -0,0 +1,447 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("1A2ACC57-CAE2-4F28-B4AB-00C8F96B12EC")] +[NativeTypeName("struct IHttpResponse4 : IHttpResponse3")] +[NativeInheritance("IHttpResponse3")] +public unsafe partial struct IHttpResponse4 : IHttpResponse4.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpResponse4)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("const HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpRequestConst() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("HTTP_RESPONSE *")] + public HTTP_RESPONSE_V2* GetRawHttpResponse() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpCachePolicy* GetCachePolicy() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetStatus(ushort statusCode, [NativeTypeName("PCSTR")] sbyte* pszReason, [Optional] ushort uSubStatus, [Optional, DefaultParameterValue(0)] HRESULT hrErrorToReport, [Optional] IAppHostConfigException* pException, [Optional] BOOL fTrySkipCustomErrors) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpResponse4*)Unsafe.AsPointer(ref this), statusCode, pszReason, uSubStatus, hrErrorToReport, pException, fTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT SetHeader(HTTP_HEADER_ID ulHeaderIndex, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpResponse4*)Unsafe.AsPointer(ref this), ulHeaderIndex, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT DeleteHeader(HTTP_HEADER_ID ulHeaderIndex) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpResponse4*)Unsafe.AsPointer(ref this), ulHeaderIndex); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HRESULT DeleteHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader(HTTP_HEADER_ID ulHeaderIndex, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpResponse4*)Unsafe.AsPointer(ref this), ulHeaderIndex, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetHeader([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public void Clear() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public void ClearHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public void SetNeedDisconnect() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void ResetConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void DisableKernelCache([NativeTypeName("ULONG")] uint reason = 9) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpResponse4*)Unsafe.AsPointer(ref this), reason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public BOOL GetKernelCacheEnabled() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public void SuppressHeaders() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public BOOL GetHeadersSuppressed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpResponse4*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT Redirect([NativeTypeName("PCSTR")] sbyte* pszUrl, [Optional, DefaultParameterValue(1)] BOOL fResetStatusCode, [Optional] BOOL fIncludeParameters) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszUrl, fResetStatusCode, fIncludeParameters); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT WriteEntityChunkByReference(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("LONG")] int lInsertPosition = -1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pDataChunk, lInsertPosition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public void DisableBuffering() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public void GetStatus(ushort* pStatusCode, ushort* pSubStatus = null, [NativeTypeName("PCSTR *")] sbyte** ppszReason = null, ushort* pcchReason = null, HRESULT* phrErrorToReport = null, [NativeTypeName("PCWSTR *")] char** ppszModule = null, [NativeTypeName("DWORD *")] uint* pdwNotification = null, IAppHostConfigException** ppException = null, BOOL* pfTrySkipCustomErrors = null) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pStatusCode, pSubStatus, ppszReason, pcchReason, phrErrorToReport, ppszModule, pdwNotification, ppException, pfTrySkipCustomErrors); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT SetErrorDescription([NativeTypeName("PCWSTR")] char* pszDescription, [NativeTypeName("DWORD")] uint cchDescription, [Optional, DefaultParameterValue(1)] BOOL fHtmlEncode) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszDescription, cchDescription, fHtmlEncode); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + [return: NativeTypeName("PCWSTR")] + public char* GetErrorDescription([NativeTypeName("DWORD *")] uint* pcchDescription = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pcchDescription); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetHeaderChanges([NativeTypeName("DWORD")] uint dwOldChangeNumber, [NativeTypeName("DWORD *")] uint* pdwNewChangeNumber, [NativeTypeName("PCSTR[30]")] sbyte** knownHeaderSnapshot, [NativeTypeName("DWORD *")] uint* pdwUnknownHeaderSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderNameSnapshot, [NativeTypeName("PCSTR **")] sbyte*** ppUnknownHeaderValueSnapshot, [NativeTypeName("DWORD[31]")] uint* diffedKnownHeaderIndices, [NativeTypeName("DWORD *")] uint* pdwDiffedUnknownHeaders, [NativeTypeName("DWORD **")] uint** ppDiffedUnknownHeaderIndices) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpResponse4*)Unsafe.AsPointer(ref this), dwOldChangeNumber, pdwNewChangeNumber, knownHeaderSnapshot, pdwUnknownHeaderSnapshot, ppUnknownHeaderNameSnapshot, ppUnknownHeaderValueSnapshot, diffedKnownHeaderIndices, pdwDiffedUnknownHeaders, ppDiffedUnknownHeaderIndices); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + public void CloseConnection() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT WriteEntityChunks(HTTP_DATA_CHUNK* pDataChunks, [NativeTypeName("DWORD")] uint nChunks, BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[28]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pDataChunks, nChunks, fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public HRESULT Flush(BOOL fAsync, BOOL fMoreData, [NativeTypeName("PFN_ASYNC_COMPLETION")] delegate* unmanaged pfnCompletionCallback, void* pvCompletionContext, [NativeTypeName("DWORD *")] uint* pcbSent, BOOL* pfCompletionExpected = null) + { + return ((delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int>)(lpVtbl[29]))((IHttpResponse4*)Unsafe.AsPointer(ref this), fAsync, fMoreData, pfnCompletionCallback, pvCompletionContext, pcbSent, pfCompletionExpected); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public HRESULT PushPromise([NativeTypeName("PCSTR")] sbyte* pszVerb, [NativeTypeName("PCWSTR")] char* pwszPath, [NativeTypeName("PCWSTR")] char* pwszQuery, [NativeTypeName("DWORD")] uint cHeaders, [NativeTypeName("PCSTR *")] sbyte** rgHeaderNames, [NativeTypeName("PCSTR *")] sbyte** rgHeaderValues) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszVerb, pwszPath, pwszQuery, cHeaders, rgHeaderNames, rgHeaderValues); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT DeleteTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(32)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[32]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName, pcchHeaderValue); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(33)] + public void ResetStream([NativeTypeName("ULONG")] uint errorCode) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[33]))((IHttpResponse4*)Unsafe.AsPointer(ref this), errorCode); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(34)] + public void SetNeedGoAway() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[34]))((IHttpResponse4*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(35)] + public HRESULT SetTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[35]))((IHttpResponse4*)Unsafe.AsPointer(ref this), pszHeaderName, pszHeaderValue, cchHeaderValue, fReplace); + } + + public interface Interface : IHttpResponse3.Interface + { + [VtblIndex(31)] + HRESULT DeleteTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName); + + [VtblIndex(32)] + [return: NativeTypeName("PCSTR")] + sbyte* GetTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName, ushort* pcchHeaderValue = null); + + [VtblIndex(33)] + void ResetStream([NativeTypeName("ULONG")] uint errorCode); + + [VtblIndex(34)] + void SetNeedGoAway(); + + [VtblIndex(35)] + HRESULT SetTrailer([NativeTypeName("PCSTR")] sbyte* pszHeaderName, [NativeTypeName("PCSTR")] sbyte* pszHeaderValue, ushort cchHeaderValue, BOOL fReplace); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("const HTTP_RESPONSE *() const")] + public delegate* unmanaged[MemberFunction] GetRawHttpRequestConst; + + [NativeTypeName("HTTP_RESPONSE *()")] + public delegate* unmanaged[MemberFunction] GetRawHttpResponse1; + + [NativeTypeName("IHttpCachePolicy *()")] + public delegate* unmanaged[MemberFunction] GetCachePolicy; + + [NativeTypeName("HRESULT (USHORT, PCSTR, USHORT, HRESULT, IAppHostConfigException *, BOOL)")] + public delegate* unmanaged[MemberFunction] SetStatus; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetHeader1; + + [NativeTypeName("HRESULT (HTTP_HEADER_ID)")] + public delegate* unmanaged[MemberFunction] DeleteHeader; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteHeader1; + + [NativeTypeName("PCSTR (HTTP_HEADER_ID, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetHeader1; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] Clear; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ClearHeaders; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetNeedDisconnect; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetConnection; + + [NativeTypeName("void (ULONG)")] + public delegate* unmanaged[MemberFunction] DisableKernelCache; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetKernelCacheEnabled; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SuppressHeaders; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetHeadersSuppressed; + + [NativeTypeName("HRESULT (BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] Flush; + + [NativeTypeName("HRESULT (PCSTR, BOOL, BOOL)")] + public delegate* unmanaged[MemberFunction] Redirect; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, LONG)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunkByReference; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction] WriteEntityChunks; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DisableBuffering; + + [NativeTypeName("void (USHORT *, USHORT *, PCSTR *, USHORT *, HRESULT *, PCWSTR *, DWORD *, IAppHostConfigException **, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetStatus; + + [NativeTypeName("HRESULT (PCWSTR, DWORD, BOOL)")] + public delegate* unmanaged[MemberFunction] SetErrorDescription; + + [NativeTypeName("PCWSTR (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetErrorDescription; + + [NativeTypeName("HRESULT (DWORD, DWORD *, PCSTR *, DWORD *, PCSTR **, PCSTR **, DWORD *, DWORD *, DWORD **)")] + public delegate* unmanaged[MemberFunction] GetHeaderChanges; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CloseConnection; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, DWORD, BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> WriteEntityChunks1; + + [NativeTypeName("HRESULT (BOOL, BOOL, PFN_ASYNC_COMPLETION, void *, DWORD *, BOOL *)")] + public delegate* unmanaged[MemberFunction], void*, uint*, BOOL*, int> Flush1; + + [NativeTypeName("HRESULT (PCSTR, PCWSTR, PCWSTR, DWORD, PCSTR *, PCSTR *)")] + public delegate* unmanaged[MemberFunction] PushPromise; + + [NativeTypeName("HRESULT (PCSTR)")] + public delegate* unmanaged[MemberFunction] DeleteTrailer; + + [NativeTypeName("PCSTR (PCSTR, USHORT *) const")] + public delegate* unmanaged[MemberFunction] GetTrailer; + + [NativeTypeName("void (ULONG)")] + public delegate* unmanaged[MemberFunction] ResetStream; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetNeedGoAway; + + [NativeTypeName("HRESULT (PCSTR, PCSTR, USHORT, BOOL)")] + public delegate* unmanaged[MemberFunction] SetTrailer; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpServer.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer.cs new file mode 100644 index 0000000000..c449b55950 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer.cs @@ -0,0 +1,390 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("EDA2A40F-FB92-4D6D-B52B-C8C207380B4E")] +public unsafe partial struct IHttpServer : IHttpServer.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpServer)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public BOOL IsCommandLineLaunch() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppPoolName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT AssociateWithThreadPool(HANDLE hHandle, [NativeTypeName("LPOVERLAPPED_COMPLETION_ROUTINE")] delegate* unmanaged completionRoutine) + { + return ((delegate* unmanaged[MemberFunction], int>)(lpVtbl[2]))((IHttpServer*)Unsafe.AsPointer(ref this), hHandle, completionRoutine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void IncrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void ReportUnhealthy([NativeTypeName("PCWSTR")] char* pszReasonString, HRESULT hrReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpServer*)Unsafe.AsPointer(ref this), pszReasonString, hrReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public void RecycleProcess([NativeTypeName("PCWSTR")] char* pszReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpServer*)Unsafe.AsPointer(ref this), pszReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IAppHostAdminManager* GetAdminManager() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT GetFileInfo([NativeTypeName("PCWSTR")] char* pszPhysicalPath, HANDLE hUserToken, [NativeTypeName("PSID")] void* pSid, [NativeTypeName("PCWSTR")] char* pszChangeNotificationPath, HANDLE hChangeNotificationToken, BOOL fCache, IHttpFileInfo** ppFileInfo, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpServer*)Unsafe.AsPointer(ref this), pszPhysicalPath, hUserToken, pSid, pszChangeNotificationPath, hChangeNotificationToken, fCache, ppFileInfo, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT FlushKernelCache([NativeTypeName("PCWSTR")] char* pszUrl) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpServer*)Unsafe.AsPointer(ref this), pszUrl); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT DoCacheOperation(CACHE_OPERATION cacheOperation, IHttpCacheKey* pCacheKey, IHttpCacheSpecificData** ppCacheSpecificData, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpServer*)Unsafe.AsPointer(ref this), cacheOperation, pCacheKey, ppCacheSpecificData, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public GLOBAL_NOTIFICATION_STATUS NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpServer*)Unsafe.AsPointer(ref this), pCustomOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public IHttpPerfCounterInfo* GetPerfCounterInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void RecycleApplication([NativeTypeName("PCWSTR")] char* pszAppConfigPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpServer*)Unsafe.AsPointer(ref this), pszAppConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void NotifyConfigurationChange([NativeTypeName("PCWSTR")] char* pszPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpServer*)Unsafe.AsPointer(ref this), pszPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public void NotifyFileChange([NativeTypeName("PCWSTR")] char* pszFileName) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpServer*)Unsafe.AsPointer(ref this), pszFileName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public IDispensedHttpModuleContextContainer* DispenseContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT AddFragmentToCache(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpServer*)Unsafe.AsPointer(ref this), pDataChunk, pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT ReadFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName, byte* pvBuffer, [NativeTypeName("DWORD")] uint cbSize, [NativeTypeName("DWORD *")] uint* pcbCopied) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpServer*)Unsafe.AsPointer(ref this), pszFragmentName, pvBuffer, cbSize, pcbCopied); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT RemoveFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpServer*)Unsafe.AsPointer(ref this), pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetWorkerProcessSettings(IWpfSettings** ppWorkerProcessSettings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpServer*)Unsafe.AsPointer(ref this), ppWorkerProcessSettings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT GetProtocolManagerCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpServer*)Unsafe.AsPointer(ref this), pProtocolManagerDll, pProtocolManagerDllInitFunction, dwCustomInterfaceId, ppCustomInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public BOOL SatisfiesPrecondition([NativeTypeName("PCWSTR")] char* pszPrecondition, BOOL* pfUnknownPrecondition = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpServer*)Unsafe.AsPointer(ref this), pszPrecondition, pfUnknownPrecondition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpServer*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT RegisterFileChangeMonitor([NativeTypeName("PCWSTR")] char* pszPath, HANDLE hToken, IHttpFileMonitor** ppFileMonitor) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpServer*)Unsafe.AsPointer(ref this), pszPath, hToken, ppFileMonitor); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public HRESULT GetExtendedInterface(HTTP_SERVER_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpServer*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + public interface Interface + { + [VtblIndex(0)] + BOOL IsCommandLineLaunch(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetAppPoolName(); + + [VtblIndex(3)] + void IncrementThreadCount(); + + [VtblIndex(4)] + void DecrementThreadCount(); + + [VtblIndex(5)] + void ReportUnhealthy([NativeTypeName("PCWSTR")] char* pszReasonString, HRESULT hrReason); + + [VtblIndex(6)] + void RecycleProcess([NativeTypeName("PCWSTR")] char* pszReason); + + [VtblIndex(7)] + IAppHostAdminManager* GetAdminManager(); + + [VtblIndex(8)] + HRESULT GetFileInfo([NativeTypeName("PCWSTR")] char* pszPhysicalPath, HANDLE hUserToken, [NativeTypeName("PSID")] void* pSid, [NativeTypeName("PCWSTR")] char* pszChangeNotificationPath, HANDLE hChangeNotificationToken, BOOL fCache, IHttpFileInfo** ppFileInfo, IHttpTraceContext* pHttpTraceContext = null); + + [VtblIndex(9)] + HRESULT FlushKernelCache([NativeTypeName("PCWSTR")] char* pszUrl); + + [VtblIndex(10)] + HRESULT DoCacheOperation(CACHE_OPERATION cacheOperation, IHttpCacheKey* pCacheKey, IHttpCacheSpecificData** ppCacheSpecificData, IHttpTraceContext* pHttpTraceContext = null); + + [VtblIndex(11)] + GLOBAL_NOTIFICATION_STATUS NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput); + + [VtblIndex(12)] + IHttpPerfCounterInfo* GetPerfCounterInfo(); + + [VtblIndex(13)] + void RecycleApplication([NativeTypeName("PCWSTR")] char* pszAppConfigPath); + + [VtblIndex(14)] + void NotifyConfigurationChange([NativeTypeName("PCWSTR")] char* pszPath); + + [VtblIndex(15)] + void NotifyFileChange([NativeTypeName("PCWSTR")] char* pszFileName); + + [VtblIndex(16)] + IDispensedHttpModuleContextContainer* DispenseContainer(); + + [VtblIndex(17)] + HRESULT AddFragmentToCache(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("PCWSTR")] char* pszFragmentName); + + [VtblIndex(18)] + HRESULT ReadFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName, byte* pvBuffer, [NativeTypeName("DWORD")] uint cbSize, [NativeTypeName("DWORD *")] uint* pcbCopied); + + [VtblIndex(19)] + HRESULT RemoveFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName); + + [VtblIndex(20)] + HRESULT GetWorkerProcessSettings(IWpfSettings** ppWorkerProcessSettings); + + [VtblIndex(21)] + HRESULT GetProtocolManagerCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface); + + [VtblIndex(22)] + BOOL SatisfiesPrecondition([NativeTypeName("PCWSTR")] char* pszPrecondition, BOOL* pfUnknownPrecondition = null); + + [VtblIndex(23)] + IHttpTraceContext* GetTraceContext(); + + [VtblIndex(24)] + HRESULT RegisterFileChangeMonitor([NativeTypeName("PCWSTR")] char* pszPath, HANDLE hToken, IHttpFileMonitor** ppFileMonitor); + + [VtblIndex(25)] + HRESULT GetExtendedInterface(HTTP_SERVER_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsCommandLineLaunch; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetAppPoolName; + + [NativeTypeName("HRESULT (HANDLE, LPOVERLAPPED_COMPLETION_ROUTINE)")] + public delegate* unmanaged[MemberFunction], int> AssociateWithThreadPool; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] IncrementThreadCount; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DecrementThreadCount; + + [NativeTypeName("void (PCWSTR, HRESULT)")] + public delegate* unmanaged[MemberFunction] ReportUnhealthy; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleProcess; + + [NativeTypeName("IAppHostAdminManager *() const")] + public delegate* unmanaged[MemberFunction] GetAdminManager; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, PSID, PCWSTR, HANDLE, BOOL, IHttpFileInfo **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] FlushKernelCache; + + [NativeTypeName("HRESULT (CACHE_OPERATION, IHttpCacheKey *, IHttpCacheSpecificData **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] DoCacheOperation; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (ICustomNotificationProvider *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpPerfCounterInfo *()")] + public delegate* unmanaged[MemberFunction] GetPerfCounterInfo; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleApplication; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyConfigurationChange; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyFileChange; + + [NativeTypeName("IDispensedHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] DispenseContainer; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, PCWSTR)")] + public delegate* unmanaged[MemberFunction] AddFragmentToCache; + + [NativeTypeName("HRESULT (PCWSTR, BYTE *, DWORD, DWORD *)")] + public delegate* unmanaged[MemberFunction] ReadFragmentFromCache; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RemoveFragmentFromCache; + + [NativeTypeName("HRESULT (IWpfSettings **)")] + public delegate* unmanaged[MemberFunction] GetWorkerProcessSettings; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetProtocolManagerCustomInterface; + + [NativeTypeName("BOOL (PCWSTR, BOOL *) const")] + public delegate* unmanaged[MemberFunction] SatisfiesPrecondition; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, IHttpFileMonitor **)")] + public delegate* unmanaged[MemberFunction] RegisterFileChangeMonitor; + + [NativeTypeName("HRESULT (HTTP_SERVER_INTERFACE_VERSION, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpServer2.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer2.cs new file mode 100644 index 0000000000..b7a7e45300 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer2.cs @@ -0,0 +1,388 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("34AF637E-AFE8-4556-BCC1-767F8E0B4A4E")] +[NativeTypeName("struct IHttpServer2 : IHttpServer")] +[NativeInheritance("IHttpServer")] +public unsafe partial struct IHttpServer2 : IHttpServer2.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpServer2)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public BOOL IsCommandLineLaunch() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppPoolName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT AssociateWithThreadPool(HANDLE hHandle, [NativeTypeName("LPOVERLAPPED_COMPLETION_ROUTINE")] delegate* unmanaged completionRoutine) + { + return ((delegate* unmanaged[MemberFunction], int>)(lpVtbl[2]))((IHttpServer2*)Unsafe.AsPointer(ref this), hHandle, completionRoutine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void IncrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void ReportUnhealthy([NativeTypeName("PCWSTR")] char* pszReasonString, HRESULT hrReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszReasonString, hrReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public void RecycleProcess([NativeTypeName("PCWSTR")] char* pszReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IAppHostAdminManager* GetAdminManager() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT GetFileInfo([NativeTypeName("PCWSTR")] char* pszPhysicalPath, HANDLE hUserToken, [NativeTypeName("PSID")] void* pSid, [NativeTypeName("PCWSTR")] char* pszChangeNotificationPath, HANDLE hChangeNotificationToken, BOOL fCache, IHttpFileInfo** ppFileInfo, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszPhysicalPath, hUserToken, pSid, pszChangeNotificationPath, hChangeNotificationToken, fCache, ppFileInfo, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT FlushKernelCache([NativeTypeName("PCWSTR")] char* pszUrl) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszUrl); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT DoCacheOperation(CACHE_OPERATION cacheOperation, IHttpCacheKey* pCacheKey, IHttpCacheSpecificData** ppCacheSpecificData, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpServer2*)Unsafe.AsPointer(ref this), cacheOperation, pCacheKey, ppCacheSpecificData, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public GLOBAL_NOTIFICATION_STATUS NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpServer2*)Unsafe.AsPointer(ref this), pCustomOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public IHttpPerfCounterInfo* GetPerfCounterInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void RecycleApplication([NativeTypeName("PCWSTR")] char* pszAppConfigPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszAppConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void NotifyConfigurationChange([NativeTypeName("PCWSTR")] char* pszPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public void NotifyFileChange([NativeTypeName("PCWSTR")] char* pszFileName) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszFileName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public IDispensedHttpModuleContextContainer* DispenseContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT AddFragmentToCache(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpServer2*)Unsafe.AsPointer(ref this), pDataChunk, pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT ReadFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName, byte* pvBuffer, [NativeTypeName("DWORD")] uint cbSize, [NativeTypeName("DWORD *")] uint* pcbCopied) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszFragmentName, pvBuffer, cbSize, pcbCopied); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT RemoveFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetWorkerProcessSettings(IWpfSettings** ppWorkerProcessSettings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpServer2*)Unsafe.AsPointer(ref this), ppWorkerProcessSettings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT GetProtocolManagerCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpServer2*)Unsafe.AsPointer(ref this), pProtocolManagerDll, pProtocolManagerDllInitFunction, dwCustomInterfaceId, ppCustomInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public BOOL SatisfiesPrecondition([NativeTypeName("PCWSTR")] char* pszPrecondition, BOOL* pfUnknownPrecondition = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszPrecondition, pfUnknownPrecondition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpServer2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT RegisterFileChangeMonitor([NativeTypeName("PCWSTR")] char* pszPath, HANDLE hToken, IHttpFileMonitor** ppFileMonitor) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszPath, hToken, ppFileMonitor); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public HRESULT GetExtendedInterface(HTTP_SERVER_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpServer2*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetToken([NativeTypeName("PCWSTR")] char* pszUserName, [NativeTypeName("PCWSTR")] char* pszPassword, [NativeTypeName("DWORD")] uint dwLogonMethod, IHttpTokenEntry** ppTokenEntry, [NativeTypeName("PCWSTR")] char* pszDefaultDomain = null, [NativeTypeName("PSOCKADDR")] SOCKADDR* pSockAddr = null, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszUserName, pszPassword, dwLogonMethod, ppTokenEntry, pszDefaultDomain, pSockAddr, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppPoolConfigFile([NativeTypeName("DWORD *")] uint* pcchConfigFilePath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpServer2*)Unsafe.AsPointer(ref this), pcchConfigFilePath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT GetExtendedInterface([NativeTypeName("const GUID &")] Guid* Version1, [NativeTypeName("PVOID")] void* pInput, [NativeTypeName("const GUID &")] Guid* Version2, [NativeTypeName("PVOID *")] void** ppOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpServer2*)Unsafe.AsPointer(ref this), Version1, pInput, Version2, ppOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public HRESULT GetMetadata([NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, IReferencedMetadataInfo** ppMetadataInfo) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpServer2*)Unsafe.AsPointer(ref this), pszSiteName, pszUrl, ppMetadataInfo); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public HRESULT GetWorkerProcessFramework(IWorkerProcessFramework** ppWorkerProcessFramework) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpServer2*)Unsafe.AsPointer(ref this), ppWorkerProcessFramework); + } + + public interface Interface : IHttpServer.Interface + { + [VtblIndex(26)] + HRESULT GetToken([NativeTypeName("PCWSTR")] char* pszUserName, [NativeTypeName("PCWSTR")] char* pszPassword, [NativeTypeName("DWORD")] uint dwLogonMethod, IHttpTokenEntry** ppTokenEntry, [NativeTypeName("PCWSTR")] char* pszDefaultDomain = null, [NativeTypeName("PSOCKADDR")] SOCKADDR* pSockAddr = null, IHttpTraceContext* pHttpTraceContext = null); + + [VtblIndex(27)] + [return: NativeTypeName("PCWSTR")] + char* GetAppPoolConfigFile([NativeTypeName("DWORD *")] uint* pcchConfigFilePath = null); + + [VtblIndex(28)] + HRESULT GetExtendedInterface([NativeTypeName("const GUID &")] Guid* Version1, [NativeTypeName("PVOID")] void* pInput, [NativeTypeName("const GUID &")] Guid* Version2, [NativeTypeName("PVOID *")] void** ppOutput); + + [VtblIndex(29)] + HRESULT GetMetadata([NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, IReferencedMetadataInfo** ppMetadataInfo); + + [VtblIndex(30)] + HRESULT GetWorkerProcessFramework(IWorkerProcessFramework** ppWorkerProcessFramework); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsCommandLineLaunch; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetAppPoolName; + + [NativeTypeName("HRESULT (HANDLE, LPOVERLAPPED_COMPLETION_ROUTINE)")] + public delegate* unmanaged[MemberFunction], int> AssociateWithThreadPool; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] IncrementThreadCount; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DecrementThreadCount; + + [NativeTypeName("void (PCWSTR, HRESULT)")] + public delegate* unmanaged[MemberFunction] ReportUnhealthy; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleProcess; + + [NativeTypeName("IAppHostAdminManager *() const")] + public delegate* unmanaged[MemberFunction] GetAdminManager; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, PSID, PCWSTR, HANDLE, BOOL, IHttpFileInfo **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] FlushKernelCache; + + [NativeTypeName("HRESULT (CACHE_OPERATION, IHttpCacheKey *, IHttpCacheSpecificData **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] DoCacheOperation; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (ICustomNotificationProvider *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpPerfCounterInfo *()")] + public delegate* unmanaged[MemberFunction] GetPerfCounterInfo; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleApplication; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyConfigurationChange; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyFileChange; + + [NativeTypeName("IDispensedHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] DispenseContainer; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, PCWSTR)")] + public delegate* unmanaged[MemberFunction] AddFragmentToCache; + + [NativeTypeName("HRESULT (PCWSTR, BYTE *, DWORD, DWORD *)")] + public delegate* unmanaged[MemberFunction] ReadFragmentFromCache; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RemoveFragmentFromCache; + + [NativeTypeName("HRESULT (IWpfSettings **)")] + public delegate* unmanaged[MemberFunction] GetWorkerProcessSettings; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetProtocolManagerCustomInterface; + + [NativeTypeName("BOOL (PCWSTR, BOOL *) const")] + public delegate* unmanaged[MemberFunction] SatisfiesPrecondition; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, IHttpFileMonitor **)")] + public delegate* unmanaged[MemberFunction] RegisterFileChangeMonitor; + + [NativeTypeName("HRESULT (HTTP_SERVER_INTERFACE_VERSION, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, IHttpTokenEntry **, PCWSTR, PSOCKADDR, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] GetToken; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetAppPoolConfigFile; + + [NativeTypeName("HRESULT (const GUID &, PVOID, const GUID &, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface1; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, IReferencedMetadataInfo **)")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (IWorkerProcessFramework **)")] + public delegate* unmanaged[MemberFunction] GetWorkerProcessFramework; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpServer3.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer3.cs new file mode 100644 index 0000000000..865c1ed411 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpServer3.cs @@ -0,0 +1,386 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("F7A66D59-C0A2-48B5-A88F-BE5975C960FB")] +[NativeTypeName("struct IHttpServer3 : IHttpServer2")] +[NativeInheritance("IHttpServer2")] +public unsafe partial struct IHttpServer3 : IHttpServer3.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpServer3)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public BOOL IsCommandLineLaunch() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppPoolName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT AssociateWithThreadPool(HANDLE hHandle, [NativeTypeName("LPOVERLAPPED_COMPLETION_ROUTINE")] delegate* unmanaged completionRoutine) + { + return ((delegate* unmanaged[MemberFunction], int>)(lpVtbl[2]))((IHttpServer3*)Unsafe.AsPointer(ref this), hHandle, completionRoutine); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void IncrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementThreadCount() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void ReportUnhealthy([NativeTypeName("PCWSTR")] char* pszReasonString, HRESULT hrReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszReasonString, hrReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public void RecycleProcess([NativeTypeName("PCWSTR")] char* pszReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public IAppHostAdminManager* GetAdminManager() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HRESULT GetFileInfo([NativeTypeName("PCWSTR")] char* pszPhysicalPath, HANDLE hUserToken, [NativeTypeName("PSID")] void* pSid, [NativeTypeName("PCWSTR")] char* pszChangeNotificationPath, HANDLE hChangeNotificationToken, BOOL fCache, IHttpFileInfo** ppFileInfo, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszPhysicalPath, hUserToken, pSid, pszChangeNotificationPath, hChangeNotificationToken, fCache, ppFileInfo, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT FlushKernelCache([NativeTypeName("PCWSTR")] char* pszUrl) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszUrl); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + public HRESULT DoCacheOperation(CACHE_OPERATION cacheOperation, IHttpCacheKey* pCacheKey, IHttpCacheSpecificData** ppCacheSpecificData, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpServer3*)Unsafe.AsPointer(ref this), cacheOperation, pCacheKey, ppCacheSpecificData, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(11)] + public GLOBAL_NOTIFICATION_STATUS NotifyCustomNotification(ICustomNotificationProvider* pCustomOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((IHttpServer3*)Unsafe.AsPointer(ref this), pCustomOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(12)] + public IHttpPerfCounterInfo* GetPerfCounterInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(13)] + public void RecycleApplication([NativeTypeName("PCWSTR")] char* pszAppConfigPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszAppConfigPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(14)] + public void NotifyConfigurationChange([NativeTypeName("PCWSTR")] char* pszPath) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszPath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(15)] + public void NotifyFileChange([NativeTypeName("PCWSTR")] char* pszFileName) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszFileName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(16)] + public IDispensedHttpModuleContextContainer* DispenseContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(17)] + public HRESULT AddFragmentToCache(HTTP_DATA_CHUNK* pDataChunk, [NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((IHttpServer3*)Unsafe.AsPointer(ref this), pDataChunk, pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(18)] + public HRESULT ReadFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName, byte* pvBuffer, [NativeTypeName("DWORD")] uint cbSize, [NativeTypeName("DWORD *")] uint* pcbCopied) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszFragmentName, pvBuffer, cbSize, pcbCopied); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(19)] + public HRESULT RemoveFragmentFromCache([NativeTypeName("PCWSTR")] char* pszFragmentName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszFragmentName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(20)] + public HRESULT GetWorkerProcessSettings(IWpfSettings** ppWorkerProcessSettings) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((IHttpServer3*)Unsafe.AsPointer(ref this), ppWorkerProcessSettings); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(21)] + public HRESULT GetProtocolManagerCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((IHttpServer3*)Unsafe.AsPointer(ref this), pProtocolManagerDll, pProtocolManagerDllInitFunction, dwCustomInterfaceId, ppCustomInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(22)] + public BOOL SatisfiesPrecondition([NativeTypeName("PCWSTR")] char* pszPrecondition, BOOL* pfUnknownPrecondition = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[22]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszPrecondition, pfUnknownPrecondition); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(23)] + public IHttpTraceContext* GetTraceContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[23]))((IHttpServer3*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(24)] + public HRESULT RegisterFileChangeMonitor([NativeTypeName("PCWSTR")] char* pszPath, HANDLE hToken, IHttpFileMonitor** ppFileMonitor) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszPath, hToken, ppFileMonitor); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(25)] + public HRESULT GetExtendedInterface(HTTP_SERVER_INTERFACE_VERSION version, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((IHttpServer3*)Unsafe.AsPointer(ref this), version, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(26)] + public HRESULT GetToken([NativeTypeName("PCWSTR")] char* pszUserName, [NativeTypeName("PCWSTR")] char* pszPassword, [NativeTypeName("DWORD")] uint dwLogonMethod, IHttpTokenEntry** ppTokenEntry, [NativeTypeName("PCWSTR")] char* pszDefaultDomain = null, [NativeTypeName("PSOCKADDR")] SOCKADDR* pSockAddr = null, IHttpTraceContext* pHttpTraceContext = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszUserName, pszPassword, dwLogonMethod, ppTokenEntry, pszDefaultDomain, pSockAddr, pHttpTraceContext); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(27)] + [return: NativeTypeName("PCWSTR")] + public char* GetAppPoolConfigFile([NativeTypeName("DWORD *")] uint* pcchConfigFilePath = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((IHttpServer3*)Unsafe.AsPointer(ref this), pcchConfigFilePath); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(28)] + public HRESULT GetExtendedInterface([NativeTypeName("const GUID &")] Guid* Version1, [NativeTypeName("PVOID")] void* pInput, [NativeTypeName("const GUID &")] Guid* Version2, [NativeTypeName("PVOID *")] void** ppOutput) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[28]))((IHttpServer3*)Unsafe.AsPointer(ref this), Version1, pInput, Version2, ppOutput); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(29)] + public HRESULT GetMetadata([NativeTypeName("PCWSTR")] char* pszSiteName, [NativeTypeName("PCWSTR")] char* pszUrl, IReferencedMetadataInfo** ppMetadataInfo) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[29]))((IHttpServer3*)Unsafe.AsPointer(ref this), pszSiteName, pszUrl, ppMetadataInfo); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(30)] + public HRESULT GetWorkerProcessFramework(IWorkerProcessFramework** ppWorkerProcessFramework) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[30]))((IHttpServer3*)Unsafe.AsPointer(ref this), ppWorkerProcessFramework); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(31)] + public HRESULT QueryRequestProperty([NativeTypeName("HTTP_OPAQUE_ID")] ulong id, HTTP_REQUEST_PROPERTY propertyId, [NativeTypeName("PVOID")] void* pQualifier, [NativeTypeName("ULONG")] uint qualifierSize, [NativeTypeName("PVOID")] void* pOutput, [NativeTypeName("ULONG")] uint outputBufferSize, [NativeTypeName("PULONG")] uint* pcbBytesReturned, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* pOverlapped) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[31]))((IHttpServer3*)Unsafe.AsPointer(ref this), id, propertyId, pQualifier, qualifierSize, pOutput, outputBufferSize, pcbBytesReturned, pOverlapped); + } + + public interface Interface : IHttpServer2.Interface + { + [VtblIndex(31)] + HRESULT QueryRequestProperty([NativeTypeName("HTTP_OPAQUE_ID")] ulong id, HTTP_REQUEST_PROPERTY propertyId, [NativeTypeName("PVOID")] void* pQualifier, [NativeTypeName("ULONG")] uint qualifierSize, [NativeTypeName("PVOID")] void* pOutput, [NativeTypeName("ULONG")] uint outputBufferSize, [NativeTypeName("PULONG")] uint* pcbBytesReturned, [NativeTypeName("LPOVERLAPPED")] OVERLAPPED* pOverlapped); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsCommandLineLaunch; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetAppPoolName; + + [NativeTypeName("HRESULT (HANDLE, LPOVERLAPPED_COMPLETION_ROUTINE)")] + public delegate* unmanaged[MemberFunction], int> AssociateWithThreadPool; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] IncrementThreadCount; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DecrementThreadCount; + + [NativeTypeName("void (PCWSTR, HRESULT)")] + public delegate* unmanaged[MemberFunction] ReportUnhealthy; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleProcess; + + [NativeTypeName("IAppHostAdminManager *() const")] + public delegate* unmanaged[MemberFunction] GetAdminManager; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, PSID, PCWSTR, HANDLE, BOOL, IHttpFileInfo **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] GetFileInfo; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] FlushKernelCache; + + [NativeTypeName("HRESULT (CACHE_OPERATION, IHttpCacheKey *, IHttpCacheSpecificData **, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] DoCacheOperation; + + [NativeTypeName("GLOBAL_NOTIFICATION_STATUS (ICustomNotificationProvider *)")] + public delegate* unmanaged[MemberFunction] NotifyCustomNotification; + + [NativeTypeName("IHttpPerfCounterInfo *()")] + public delegate* unmanaged[MemberFunction] GetPerfCounterInfo; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleApplication; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyConfigurationChange; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] NotifyFileChange; + + [NativeTypeName("IDispensedHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] DispenseContainer; + + [NativeTypeName("HRESULT (HTTP_DATA_CHUNK *, PCWSTR)")] + public delegate* unmanaged[MemberFunction] AddFragmentToCache; + + [NativeTypeName("HRESULT (PCWSTR, BYTE *, DWORD, DWORD *)")] + public delegate* unmanaged[MemberFunction] ReadFragmentFromCache; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RemoveFragmentFromCache; + + [NativeTypeName("HRESULT (IWpfSettings **)")] + public delegate* unmanaged[MemberFunction] GetWorkerProcessSettings; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetProtocolManagerCustomInterface; + + [NativeTypeName("BOOL (PCWSTR, BOOL *) const")] + public delegate* unmanaged[MemberFunction] SatisfiesPrecondition; + + [NativeTypeName("IHttpTraceContext *() const")] + public delegate* unmanaged[MemberFunction] GetTraceContext; + + [NativeTypeName("HRESULT (PCWSTR, HANDLE, IHttpFileMonitor **)")] + public delegate* unmanaged[MemberFunction] RegisterFileChangeMonitor; + + [NativeTypeName("HRESULT (HTTP_SERVER_INTERFACE_VERSION, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, IHttpTokenEntry **, PCWSTR, PSOCKADDR, IHttpTraceContext *)")] + public delegate* unmanaged[MemberFunction] GetToken; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetAppPoolConfigFile; + + [NativeTypeName("HRESULT (const GUID &, PVOID, const GUID &, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetExtendedInterface1; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, IReferencedMetadataInfo **)")] + public delegate* unmanaged[MemberFunction] GetMetadata; + + [NativeTypeName("HRESULT (IWorkerProcessFramework **)")] + public delegate* unmanaged[MemberFunction] GetWorkerProcessFramework; + + [NativeTypeName("HRESULT (HTTP_OPAQUE_ID, HTTP_REQUEST_PROPERTY, PVOID, ULONG, PVOID, ULONG, PULONG, LPOVERLAPPED)")] + public delegate* unmanaged[MemberFunction] QueryRequestProperty; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpSite.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpSite.cs new file mode 100644 index 0000000000..9987dedf41 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpSite.cs @@ -0,0 +1,87 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("EB16A6EC-BA5D-436F-BF24-3EDE13906450")] +public unsafe partial struct IHttpSite : IHttpSite.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpSite)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + public uint GetSiteId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpSite*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetSiteName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpSite*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpSite*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpPerfCounterInfo* GetPerfCounterInfo() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpSite*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("DWORD")] + uint GetSiteId(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetSiteName(); + + [VtblIndex(2)] + IHttpModuleContextContainer* GetModuleContextContainer(); + + [VtblIndex(3)] + IHttpPerfCounterInfo* GetPerfCounterInfo(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetSiteId; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetSiteName; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("IHttpPerfCounterInfo *()")] + public delegate* unmanaged[MemberFunction] GetPerfCounterInfo; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpStoredContext.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpStoredContext.cs new file mode 100644 index 0000000000..3e4a09cc61 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpStoredContext.cs @@ -0,0 +1,41 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("F1927F76-790E-4CCB-A72E-396BDFDAE05D")] +public unsafe partial struct IHttpStoredContext : IHttpStoredContext.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpStoredContext)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void CleanupStoredContext() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpStoredContext*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + void CleanupStoredContext(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] CleanupStoredContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpTokenEntry.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpTokenEntry.cs new file mode 100644 index 0000000000..7698395637 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpTokenEntry.cs @@ -0,0 +1,150 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("FD86E6DE-FB0E-47DD-820A-E0DA12BE46E9")] +[NativeTypeName("struct IHttpTokenEntry : IHttpCacheSpecificData")] +[NativeInheritance("IHttpCacheSpecificData")] +public unsafe partial struct IHttpTokenEntry : IHttpTokenEntry.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpTokenEntry)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpCacheKey* GetCacheKey() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void ReferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void DereferenceCacheData() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void ResetTTL() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void DecrementTTL(BOOL* pfTTLExpired) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this), pfTTLExpired); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void SetFlushed() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public BOOL GetFlushed() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public HANDLE GetImpersonationToken() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public HANDLE GetPrimaryToken() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("PSID")] + public void* GetSid() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpTokenEntry*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpCacheSpecificData.Interface + { + [VtblIndex(7)] + HANDLE GetImpersonationToken(); + + [VtblIndex(8)] + HANDLE GetPrimaryToken(); + + [VtblIndex(9)] + [return: NativeTypeName("PSID")] + void* GetSid(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpCacheKey *() const")] + public delegate* unmanaged[MemberFunction] GetCacheKey; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceCacheData; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ResetTTL; + + [NativeTypeName("void (BOOL *)")] + public delegate* unmanaged[MemberFunction] DecrementTTL; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] SetFlushed; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetFlushed; + + [NativeTypeName("HANDLE ()")] + public delegate* unmanaged[MemberFunction] GetImpersonationToken; + + [NativeTypeName("HANDLE ()")] + public delegate* unmanaged[MemberFunction] GetPrimaryToken; + + [NativeTypeName("PSID ()")] + public delegate* unmanaged[MemberFunction] GetSid; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpTraceContext.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpTraceContext.cs new file mode 100644 index 0000000000..661d12f664 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpTraceContext.cs @@ -0,0 +1,99 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("9F9098D5-915C-4294-A52E-66532A232BC9")] +public unsafe partial struct IHttpTraceContext : IHttpTraceContext.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpTraceContext)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public HRESULT GetTraceConfiguration(HTTP_TRACE_CONFIGURATION* pHttpTraceConfiguration) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpTraceContext*)Unsafe.AsPointer(ref this), pHttpTraceConfiguration); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetTraceConfiguration([NativeTypeName("HTTP_MODULE_ID")] void* moduleId, HTTP_TRACE_CONFIGURATION* pHttpTraceConfiguration, [NativeTypeName("DWORD")] uint cHttpTraceConfiguration = 1) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpTraceContext*)Unsafe.AsPointer(ref this), moduleId, pHttpTraceConfiguration, cHttpTraceConfiguration); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT RaiseTraceEvent(HTTP_TRACE_EVENT* pTraceEvent) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpTraceContext*)Unsafe.AsPointer(ref this), pTraceEvent); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("LPCGUID")] + public Guid* GetTraceActivityId() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpTraceContext*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT QuickTrace([NativeTypeName("PCWSTR")] char* pszData1, [NativeTypeName("PCWSTR")] [Optional] char* pszData2, [Optional, DefaultParameterValue(0)] HRESULT hrLastError, [NativeTypeName("UCHAR")] byte Level = 4) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpTraceContext*)Unsafe.AsPointer(ref this), pszData1, pszData2, hrLastError, Level); + } + + public interface Interface + { + [VtblIndex(0)] + HRESULT GetTraceConfiguration(HTTP_TRACE_CONFIGURATION* pHttpTraceConfiguration); + + [VtblIndex(1)] + HRESULT SetTraceConfiguration([NativeTypeName("HTTP_MODULE_ID")] void* moduleId, HTTP_TRACE_CONFIGURATION* pHttpTraceConfiguration, [NativeTypeName("DWORD")] uint cHttpTraceConfiguration = 1); + + [VtblIndex(2)] + HRESULT RaiseTraceEvent(HTTP_TRACE_EVENT* pTraceEvent); + + [VtblIndex(3)] + [return: NativeTypeName("LPCGUID")] + Guid* GetTraceActivityId(); + + [VtblIndex(4)] + HRESULT QuickTrace([NativeTypeName("PCWSTR")] char* pszData1, [NativeTypeName("PCWSTR")] [Optional] char* pszData2, [Optional, DefaultParameterValue(0)] HRESULT hrLastError, [NativeTypeName("UCHAR")] byte Level = 4); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("HRESULT (HTTP_TRACE_CONFIGURATION *)")] + public delegate* unmanaged[MemberFunction] GetTraceConfiguration; + + [NativeTypeName("HRESULT (HTTP_MODULE_ID, HTTP_TRACE_CONFIGURATION *, DWORD)")] + public delegate* unmanaged[MemberFunction] SetTraceConfiguration; + + [NativeTypeName("HRESULT (HTTP_TRACE_EVENT *)")] + public delegate* unmanaged[MemberFunction] RaiseTraceEvent; + + [NativeTypeName("LPCGUID ()")] + public delegate* unmanaged[MemberFunction] GetTraceActivityId; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, HRESULT, UCHAR)")] + public delegate* unmanaged[MemberFunction] QuickTrace; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpUrlInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpUrlInfo.cs new file mode 100644 index 0000000000..49038264bb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpUrlInfo.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("7E0E6167-0094-49A1-8287-ECF6DC6E73A6")] +public unsafe partial struct IHttpUrlInfo : IHttpUrlInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpUrlInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpUrlInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public BOOL IsFrequentlyHit() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpUrlInfo*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpModuleContextContainer* GetModuleContextContainer(); + + [VtblIndex(1)] + BOOL IsFrequentlyHit(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] IsFrequentlyHit; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IHttpUser.cs b/sources/Interop/Windows/Windows/um/httpserv/IHttpUser.cs new file mode 100644 index 0000000000..cc492314f2 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IHttpUser.cs @@ -0,0 +1,191 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("8059E6F8-10CE-4D61-B47E-5A1D8D9A8B67")] +public unsafe partial struct IHttpUser : IHttpUser.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IHttpUser)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetRemoteUserName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetUserNameW() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetAuthenticationType() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCWSTR")] + public char* GetPassword() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HANDLE GetImpersonationToken() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IHttpUser*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HANDLE GetPrimaryToken() + { + return ((HANDLE)(((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IHttpUser*)Unsafe.AsPointer(ref this)))); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public void ReferenceUser() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + public void DereferenceUser() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public BOOL SupportsIsInRole() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IHttpUser*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + public HRESULT IsInRole([NativeTypeName("PCWSTR")] char* pszRoleName, BOOL* pfInRole) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IHttpUser*)Unsafe.AsPointer(ref this), pszRoleName, pfInRole); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + [return: NativeTypeName("PVOID")] + public void* GetUserVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IHttpUser*)Unsafe.AsPointer(ref this), pszVariableName); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + char* GetRemoteUserName(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetUserNameW(); + + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + char* GetAuthenticationType(); + + [VtblIndex(3)] + [return: NativeTypeName("PCWSTR")] + char* GetPassword(); + + [VtblIndex(4)] + HANDLE GetImpersonationToken(); + + [VtblIndex(5)] + HANDLE GetPrimaryToken(); + + [VtblIndex(6)] + void ReferenceUser(); + + [VtblIndex(7)] + void DereferenceUser(); + + [VtblIndex(8)] + BOOL SupportsIsInRole(); + + [VtblIndex(9)] + HRESULT IsInRole([NativeTypeName("PCWSTR")] char* pszRoleName, BOOL* pfInRole); + + [VtblIndex(10)] + [return: NativeTypeName("PVOID")] + void* GetUserVariable([NativeTypeName("PCSTR")] sbyte* pszVariableName); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR ()")] + public delegate* unmanaged[MemberFunction] GetRemoteUserName; + + [NativeTypeName("PCWSTR ()")] + public delegate* unmanaged[MemberFunction] GetUserNameW; + + [NativeTypeName("PCWSTR ()")] + public delegate* unmanaged[MemberFunction] GetAuthenticationType; + + [NativeTypeName("PCWSTR ()")] + public delegate* unmanaged[MemberFunction] GetPassword; + + [NativeTypeName("HANDLE ()")] + public delegate* unmanaged[MemberFunction] GetImpersonationToken; + + [NativeTypeName("HANDLE ()")] + public delegate* unmanaged[MemberFunction] GetPrimaryToken; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReferenceUser; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceUser; + + [NativeTypeName("BOOL ()")] + public delegate* unmanaged[MemberFunction] SupportsIsInRole; + + [NativeTypeName("HRESULT (PCWSTR, BOOL *)")] + public delegate* unmanaged[MemberFunction] IsInRole; + + [NativeTypeName("PVOID (PCSTR)")] + public delegate* unmanaged[MemberFunction] GetUserVariable; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IID.cs b/sources/Interop/Windows/Windows/um/httpserv/IID.cs new file mode 100644 index 0000000000..276d339308 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IID.cs @@ -0,0 +1,1509 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +public static partial class IID +{ + public static ref readonly Guid IID_IHttpStoredContext + { + get + { + ReadOnlySpan data = [ + 0x76, 0x7F, 0x92, 0xF1, + 0x0E, 0x79, + 0xCB, 0x4C, + 0xA7, + 0x2E, + 0x39, + 0x6B, + 0xDF, + 0xDA, + 0xE0, + 0x5D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpModuleContextContainer + { + get + { + ReadOnlySpan data = [ + 0xC9, 0xD7, 0xFA, 0xD7, + 0x27, 0xAA, + 0xB9, 0x4A, + 0xBD, + 0x60, + 0xE5, + 0x5C, + 0xCB, + 0xA3, + 0xF5, + 0xDC + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_INamedContextContainer + { + get + { + ReadOnlySpan data = [ + 0x7C, 0x6F, 0xDB, 0x16, + 0x94, 0x1A, + 0xCA, 0x47, + 0xA8, + 0xE8, + 0xFE, + 0xA6, + 0x00, + 0x5F, + 0xF3, + 0xBA + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IDispensedHttpModuleContextContainer + { + get + { + ReadOnlySpan data = [ + 0x59, 0x93, 0xE4, 0x2A, + 0xDD, 0x95, + 0x48, 0x4E, + 0xAE, + 0x20, + 0xC0, + 0xCB, + 0x9D, + 0x0B, + 0xC0, + 0x3A + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpPerfCounterInfo + { + get + { + ReadOnlySpan data = [ + 0x4A, 0x4C, 0xFC, 0xBD, + 0xA4, 0x12, + 0x44, 0x47, + 0x87, + 0xD8, + 0x76, + 0x5E, + 0xB3, + 0x20, + 0xC5, + 0x9F + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpApplication + { + get + { + ReadOnlySpan data = [ + 0xE6, 0xD9, 0x75, 0x3F, + 0x75, 0x10, + 0x2C, 0x42, + 0xAD, + 0x89, + 0x93, + 0xA8, + 0x5F, + 0x2D, + 0x7B, + 0xDC + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpApplication2 + { + get + { + ReadOnlySpan data = [ + 0x7A, 0x3B, 0x1A, 0x31, + 0x73, 0xB6, + 0x1C, 0x4A, + 0x83, + 0x49, + 0x2E, + 0x98, + 0xA2, + 0x3C, + 0xAD, + 0xCB + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpUrlInfo + { + get + { + ReadOnlySpan data = [ + 0x67, 0x61, 0x0E, 0x7E, + 0x94, 0x00, + 0xA1, 0x49, + 0x82, + 0x87, + 0xEC, + 0xF6, + 0xDC, + 0x6E, + 0x73, + 0xA6 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IScriptMapInfo + { + get + { + ReadOnlySpan data = [ + 0x77, 0x3D, 0xFE, 0xD7, + 0xBC, 0x68, + 0x4A, 0x4D, + 0x85, + 0x1F, + 0xEE, + 0xC9, + 0xFB, + 0x68, + 0x01, + 0x7C + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IMetadataInfo + { + get + { + ReadOnlySpan data = [ + 0x33, 0x06, 0xB1, 0x48, + 0x5D, 0x82, + 0x5E, 0x49, + 0x93, + 0xB0, + 0x22, + 0x53, + 0x80, + 0x05, + 0x3E, + 0x8E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IReferencedMetadataInfo + { + get + { + ReadOnlySpan data = [ + 0x36, 0xC3, 0xC5, 0x3F, + 0xD7, 0x9A, + 0xEA, 0x45, + 0xAF, + 0x2F, + 0x31, + 0xB5, + 0x93, + 0x02, + 0xC9, + 0xFE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpRequest + { + get + { + ReadOnlySpan data = [ + 0x7E, 0x8F, 0x69, 0xE8, + 0x6E, 0x57, + 0xAC, 0x4C, + 0xA3, + 0x09, + 0x67, + 0x43, + 0x53, + 0x55, + 0xFA, + 0xEF + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpRequest2 + { + get + { + ReadOnlySpan data = [ + 0xE1, 0x4A, 0x24, 0xD9, + 0xF8, 0x51, + 0xA1, 0x4A, + 0xA6, + 0x6D, + 0x19, + 0x27, + 0x7C, + 0x33, + 0xE6, + 0x10 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpRequest3 + { + get + { + ReadOnlySpan data = [ + 0x0F, 0x4E, 0x2E, 0xB3, + 0x57, 0x40, + 0xEB, 0x4F, + 0xAE, + 0xAB, + 0x7B, + 0x69, + 0xC0, + 0x3C, + 0x63, + 0x14 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpRequest4 + { + get + { + ReadOnlySpan data = [ + 0x17, 0xF5, 0x16, 0x38, + 0x31, 0xF6, + 0xF0, 0x49, + 0x8B, + 0x51, + 0x16, + 0xD6, + 0xF0, + 0xC6, + 0xFF, + 0xB2 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCachePolicy + { + get + { + ReadOnlySpan data = [ + 0xCA, 0x40, 0x1C, 0xCB, + 0xF2, 0x70, + 0xA0, 0x41, + 0xAD, + 0xD2, + 0x88, + 0x1F, + 0x5E, + 0xF5, + 0x73, + 0x88 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCachePolicy2 + { + get + { + ReadOnlySpan data = [ + 0x07, 0xA8, 0x4B, 0x9F, + 0x0E, 0x05, + 0x95, 0x44, + 0xAE, + 0x55, + 0x88, + 0x70, + 0xF7, + 0xE9, + 0x19, + 0x4A + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpResponse + { + get + { + ReadOnlySpan data = [ + 0x38, 0x6B, 0x1C, 0x7E, + 0x8F, 0x62, + 0x6C, 0x4E, + 0x95, + 0xDC, + 0x41, + 0x23, + 0x7E, + 0xB7, + 0xF9, + 0x5E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpResponse2 + { + get + { + ReadOnlySpan data = [ + 0x71, 0xC8, 0x22, 0x08, + 0x4E, 0xF1, + 0x74, 0x49, + 0xA1, + 0xE6, + 0x5B, + 0x3C, + 0x1F, + 0x09, + 0xB7, + 0x6A + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpResponse3 + { + get + { + ReadOnlySpan data = [ + 0x49, 0x8E, 0x57, 0x19, + 0x80, 0xD0, + 0xDA, 0x45, + 0xB6, + 0x73, + 0x96, + 0xCB, + 0x47, + 0x5D, + 0x3C, + 0x5D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpResponse4 + { + get + { + ReadOnlySpan data = [ + 0x57, 0xCC, 0x2A, 0x1A, + 0xE2, 0xCA, + 0x28, 0x4F, + 0xB4, + 0xAB, + 0x00, + 0xC8, + 0xF9, + 0x6B, + 0x12, + 0xEC + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpUser + { + get + { + ReadOnlySpan data = [ + 0xF8, 0xE6, 0x59, 0x80, + 0xCE, 0x10, + 0x61, 0x4D, + 0xB4, + 0x7E, + 0x5A, + 0x1D, + 0x8D, + 0x9A, + 0x8B, + 0x67 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpConnectionStoredContext + { + get + { + ReadOnlySpan data = [ + 0x71, 0x9A, 0x1D, 0x84, + 0xF4, 0x75, + 0x26, 0x46, + 0x8B, + 0x97, + 0x66, + 0x04, + 0x6C, + 0xA7, + 0xE4, + 0x5B + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpConnectionModuleContextContainer + { + get + { + ReadOnlySpan data = [ + 0xB3, 0x2F, 0xDD, 0xF3, + 0x11, 0x4D, + 0x95, 0x42, + 0xB8, + 0xAB, + 0x4C, + 0xB6, + 0x67, + 0xAD, + 0xD1, + 0xFE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpConnection + { + get + { + ReadOnlySpan data = [ + 0x00, 0xDE, 0xA5, 0xD9, + 0x46, 0x33, + 0x99, 0x45, + 0x98, + 0x26, + 0xFE, + 0x88, + 0x56, + 0x5E, + 0x12, + 0x26 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpContext + { + get + { + ReadOnlySpan data = [ + 0x8C, 0x1B, 0x4C, 0x42, + 0xBA, 0xA1, + 0xD7, 0x44, + 0xAC, + 0x98, + 0x9F, + 0x8F, + 0x45, + 0x77, + 0x01, + 0xA5 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpContext2 + { + get + { + ReadOnlySpan data = [ + 0x2C, 0x18, 0x86, 0xC9, + 0x4A, 0xCF, + 0x82, 0x44, + 0x82, + 0x05, + 0x0D, + 0xBB, + 0xC1, + 0xFD, + 0x6C, + 0xEE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpContext3 + { + get + { + ReadOnlySpan data = [ + 0x22, 0xC0, 0x53, 0xBF, + 0x4B, 0xCA, + 0x49, 0x43, + 0xA3, + 0x8E, + 0xA4, + 0xB7, + 0x8A, + 0xD8, + 0x97, + 0xFB + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpContext4 + { + get + { + ReadOnlySpan data = [ + 0xD8, 0x63, 0x94, 0x2C, + 0xC4, 0x4E, + 0x22, 0x46, + 0x89, + 0x17, + 0xD4, + 0x86, + 0x32, + 0x1A, + 0x94, + 0x43 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpTraceContext + { + get + { + ReadOnlySpan data = [ + 0xD5, 0x98, 0x90, 0x9F, + 0x5C, 0x91, + 0x94, 0x42, + 0xA5, + 0x2E, + 0x66, + 0x53, + 0x2A, + 0x23, + 0x2B, + 0xC9 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCacheKey + { + get + { + ReadOnlySpan data = [ + 0xAD, 0x2A, 0xEF, 0xCD, + 0xB3, 0x20, + 0x12, 0x45, + 0xB1, + 0xB1, + 0x09, + 0x4B, + 0x38, + 0x44, + 0xAE, + 0xB2 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCacheSpecificData + { + get + { + ReadOnlySpan data = [ + 0xFF, 0x6A, 0x77, 0x37, + 0x2E, 0x85, + 0xEC, 0x4E, + 0x93, + 0xA5, + 0xB8, + 0x5A, + 0x28, + 0x5A, + 0x95, + 0xB8 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpSite + { + get + { + ReadOnlySpan data = [ + 0xEC, 0xA6, 0x16, 0xEB, + 0x5D, 0xBA, + 0x6F, 0x43, + 0xBF, + 0x24, + 0x3E, + 0xDE, + 0x13, + 0x90, + 0x64, + 0x50 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpFileMonitor + { + get + { + ReadOnlySpan data = [ + 0xDA, 0x22, 0x54, 0x98, + 0xCF, 0xB0, + 0x3B, 0x47, + 0xBA, + 0x9E, + 0x81, + 0x48, + 0xCE, + 0xB3, + 0xE2, + 0x40 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpFileInfo + { + get + { + ReadOnlySpan data = [ + 0x95, 0x55, 0xE9, 0x71, + 0x74, 0x8C, + 0xD9, 0x44, + 0x88, + 0xA9, + 0xF5, + 0x11, + 0x2D, + 0x5F, + 0x59, + 0x00 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpTokenEntry + { + get + { + ReadOnlySpan data = [ + 0xDE, 0xE6, 0x86, 0xFD, + 0x0E, 0xFB, + 0xDD, 0x47, + 0x82, + 0x0A, + 0xE0, + 0xDA, + 0x12, + 0xBE, + 0x46, + 0xE9 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpServer + { + get + { + ReadOnlySpan data = [ + 0x0F, 0xA4, 0xA2, 0xED, + 0x92, 0xFB, + 0x6D, 0x4D, + 0xB5, + 0x2B, + 0xC8, + 0xC2, + 0x07, + 0x38, + 0x0B, + 0x4E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpServer2 + { + get + { + ReadOnlySpan data = [ + 0x7E, 0x63, 0xAF, 0x34, + 0xE8, 0xAF, + 0x56, 0x45, + 0xBC, + 0xC1, + 0x76, + 0x7F, + 0x8E, + 0x0B, + 0x4A, + 0x4E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpServer3 + { + get + { + ReadOnlySpan data = [ + 0x59, 0x6D, 0xA6, 0xF7, + 0xA2, 0xC0, + 0xB5, 0x48, + 0xA8, + 0x8F, + 0xBE, + 0x59, + 0x75, + 0xC9, + 0x60, + 0xFB + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpEventProvider + { + get + { + ReadOnlySpan data = [ + 0x7D, 0x65, 0x3F, 0x6F, + 0xB8, 0x2F, + 0xC6, 0x43, + 0xA0, + 0x96, + 0x50, + 0x64, + 0xB4, + 0x1F, + 0x05, + 0x80 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCompletionInfo + { + get + { + ReadOnlySpan data = [ + 0xE3, 0x20, 0xDD, 0x49, + 0xC0, 0xD9, + 0x3C, 0x46, + 0x88, + 0x21, + 0xF3, + 0x41, + 0x3B, + 0x55, + 0xCC, + 0x00 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpCompletionInfo2 + { + get + { + ReadOnlySpan data = [ + 0x70, 0x9F, 0x12, 0x53, + 0x96, 0x01, + 0xEC, 0x47, + 0xB1, + 0x6C, + 0x12, + 0x79, + 0x06, + 0xE2, + 0xAF, + 0xEB + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_ICustomNotificationProvider + { + get + { + ReadOnlySpan data = [ + 0x34, 0x6D, 0x1E, 0x67, + 0x80, 0x93, + 0xF4, 0x4D, + 0xB4, + 0x53, + 0x91, + 0x12, + 0x9D, + 0xF0, + 0x2B, + 0x24 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IAuthenticationProvider + { + get + { + ReadOnlySpan data = [ + 0xD0, 0x51, 0x4D, 0x30, + 0x07, 0x03, + 0xED, 0x45, + 0x83, + 0xFD, + 0xDD, + 0x3F, + 0xC0, + 0x32, + 0xFD, + 0xFC + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IMapHandlerProvider + { + get + { + ReadOnlySpan data = [ + 0x6B, 0xCE, 0xA3, 0xFE, + 0x46, 0xE3, + 0xE7, 0x47, + 0xB2, + 0xA6, + 0xAD, + 0x26, + 0x5B, + 0xAE, + 0xFF, + 0x2C + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IMapPathProvider + { + get + { + ReadOnlySpan data = [ + 0x57, 0xF5, 0xFD, 0x8E, + 0xF1, 0xA8, + 0xC9, 0x4B, + 0xB4, + 0x62, + 0x6D, + 0xF3, + 0xB0, + 0x38, + 0xA5, + 0x9A + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_ISendResponseProvider + { + get + { + ReadOnlySpan data = [ + 0xBC, 0xE7, 0xF2, 0x57, + 0xCF, 0x0B, + 0x9F, 0x4A, + 0x94, + 0xA4, + 0x10, + 0xE5, + 0x5C, + 0x6E, + 0x5B, + 0x51 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IReadEntityProvider + { + get + { + ReadOnlySpan data = [ + 0x5A, 0x90, 0x6D, 0xFE, + 0xB8, 0x99, + 0xFD, 0x49, + 0xB3, + 0x89, + 0xCF, + 0xC8, + 0x09, + 0x56, + 0x2B, + 0x81 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IPreBeginRequestProvider + { + get + { + ReadOnlySpan data = [ + 0x26, 0x5D, 0x71, 0xFB, + 0xF9, 0xAF, + 0x6A, 0x47, + 0x8F, + 0xC0, + 0x6B, + 0x1A, + 0xCB, + 0x3D, + 0x10, + 0x98 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpApplicationProvider + { + get + { + ReadOnlySpan data = [ + 0x1C, 0xC7, 0xE2, 0x1D, + 0x26, 0xC1, + 0x12, 0x45, + 0xAE, + 0xD3, + 0xF4, + 0xF8, + 0x85, + 0xE1, + 0x49, + 0x97 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpApplicationResolveModulesProvider + { + get + { + ReadOnlySpan data = [ + 0xB9, 0xD9, 0x17, 0x06, + 0x0F, 0xE2, + 0x9F, 0x4A, + 0x94, + 0xF9, + 0x35, + 0x40, + 0x3B, + 0x3B, + 0xE0, + 0x1E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalRSCAQueryProvider + { + get + { + ReadOnlySpan data = [ + 0x3F, 0xC4, 0xFD, 0x63, + 0x4A, 0x93, + 0xE5, 0x4E, + 0xBC, + 0xD8, + 0x7E, + 0x7B, + 0x50, + 0xB7, + 0x56, + 0x05 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalStopListeningProvider + { + get + { + ReadOnlySpan data = [ + 0x01, 0xA6, 0xF9, 0x41, + 0x5D, 0xE2, + 0xC8, 0x4A, + 0x8A, + 0x1F, + 0x63, + 0x56, + 0x98, + 0xA3, + 0x0A, + 0xB9 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_ICacheProvider + { + get + { + ReadOnlySpan data = [ + 0xB9, 0x5F, 0x92, 0x58, + 0x5E, 0x7C, + 0x84, 0x46, + 0x83, + 0x3B, + 0x4A, + 0x04, + 0xE1, + 0x28, + 0x66, + 0x90 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalConfigurationChangeProvider + { + get + { + ReadOnlySpan data = [ + 0xB4, 0xF3, 0x05, 0x34, + 0xD6, 0xB3, + 0x73, 0x4B, + 0xB5, + 0xF5, + 0x4D, + 0x8A, + 0x3C, + 0xC6, + 0x42, + 0xCE + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalFileChangeProvider + { + get + { + ReadOnlySpan data = [ + 0xE5, 0x1E, 0xE3, 0xEC, + 0x86, 0x04, + 0xB0, 0x4F, + 0xA8, + 0x75, + 0x67, + 0x39, + 0xA2, + 0xD7, + 0xDA, + 0xF5 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalTraceEventProvider + { + get + { + ReadOnlySpan data = [ + 0x50, 0xB1, 0x6B, 0x7C, + 0x10, 0x03, + 0x18, 0x47, + 0xA0, + 0x1F, + 0x6F, + 0xAC, + 0xEB, + 0x62, + 0xDC, + 0x1D + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalThreadCleanupProvider + { + get + { + ReadOnlySpan data = [ + 0x49, 0xA1, 0x36, 0x6B, + 0x20, 0x86, + 0xA0, 0x45, + 0x81, + 0x97, + 0x00, + 0x81, + 0x4A, + 0x70, + 0x6E, + 0x2E + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalApplicationPreloadProvider + { + get + { + ReadOnlySpan data = [ + 0xD6, 0xF8, 0x11, 0x21, + 0x41, 0x0C, + 0xF7, 0x4F, + 0xBD, + 0x45, + 0x5C, + 0x04, + 0xC7, + 0xE9, + 0x1A, + 0x73 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalApplicationPreloadProvider2 + { + get + { + ReadOnlySpan data = [ + 0xDD, 0xB2, 0x1D, 0x25, + 0xE7, 0x81, + 0xCE, 0x44, + 0xAE, + 0x02, + 0x46, + 0x52, + 0x9F, + 0x2D, + 0x71, + 0xEA + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IGlobalSuspendProcessCallback + { + get + { + ReadOnlySpan data = [ + 0x03, 0xF3, 0xD8, 0x7F, + 0x31, 0x10, + 0x50, 0x4E, + 0x91, + 0x8A, + 0xB7, + 0xB9, + 0x16, + 0xFD, + 0x6C, + 0x54 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IModuleAllocator + { + get + { + ReadOnlySpan data = [ + 0x9C, 0x67, 0xC1, 0x85, + 0x21, 0x0B, + 0x1C, 0x49, + 0xAF, + 0xB5, + 0xC7, + 0xB5, + 0xC8, + 0x64, + 0x64, + 0xC4 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpModuleFactory + { + get + { + ReadOnlySpan data = [ + 0x30, 0xD3, 0x32, 0xBA, + 0xA8, 0x9E, + 0x9E, 0x4B, + 0x89, + 0xF1, + 0x8C, + 0x76, + 0xA3, + 0x23, + 0x27, + 0x7F + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpModuleRegistrationInfo + { + get + { + ReadOnlySpan data = [ + 0xB3, 0xBE, 0xE5, 0x07, + 0x98, 0xB7, + 0x9D, 0x45, + 0xA9, + 0x8A, + 0xE6, + 0xC4, + 0x85, + 0xB2, + 0xB3, + 0xBC + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid IID_IHttpModuleRegistrationInfo2 + { + get + { + ReadOnlySpan data = [ + 0xBF, 0x1C, 0xD1, 0x4F, + 0xC5, 0x8C, + 0x8E, 0x41, + 0x80, + 0x00, + 0xC9, + 0xE7, + 0x65, + 0xF8, + 0x85, + 0x33 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IMapHandlerProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IMapHandlerProvider.cs new file mode 100644 index 0000000000..0f53b73f40 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IMapHandlerProvider.cs @@ -0,0 +1,82 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("FEA3CE6B-E346-47E7-B2A6-AD265BAEFF2C")] +[NativeTypeName("struct IMapHandlerProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IMapHandlerProvider : IMapHandlerProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IMapHandlerProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IMapHandlerProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetScriptName([NativeTypeName("PCWSTR")] char* pszScriptName, [NativeTypeName("DWORD")] uint cchScriptName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IMapHandlerProvider*)Unsafe.AsPointer(ref this), pszScriptName, cchScriptName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void SetScriptMap(IScriptMapInfo* pScriptMap) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IMapHandlerProvider*)Unsafe.AsPointer(ref this), pScriptMap); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void SetFileInfo(IHttpFileInfo* pFileInfo) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IMapHandlerProvider*)Unsafe.AsPointer(ref this), pFileInfo); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + HRESULT SetScriptName([NativeTypeName("PCWSTR")] char* pszScriptName, [NativeTypeName("DWORD")] uint cchScriptName); + + [VtblIndex(2)] + void SetScriptMap(IScriptMapInfo* pScriptMap); + + [VtblIndex(3)] + void SetFileInfo(IHttpFileInfo* pFileInfo); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("HRESULT (PCWSTR, DWORD)")] + public delegate* unmanaged[MemberFunction] SetScriptName; + + [NativeTypeName("void (IScriptMapInfo *)")] + public delegate* unmanaged[MemberFunction] SetScriptMap; + + [NativeTypeName("void (IHttpFileInfo *)")] + public delegate* unmanaged[MemberFunction] SetFileInfo; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IMapPathProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IMapPathProvider.cs new file mode 100644 index 0000000000..fa98bd78a3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IMapPathProvider.cs @@ -0,0 +1,86 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("8EFDF557-A8F1-4BC9-B462-6DF3B038A59A")] +[NativeTypeName("struct IMapPathProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IMapPathProvider : IMapPathProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IMapPathProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IMapPathProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetUrl() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IMapPathProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetPhysicalPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IMapPathProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT SetPhysicalPath([NativeTypeName("PCWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD")] uint cchPhysicalPath) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IMapPathProvider*)Unsafe.AsPointer(ref this), pszPhysicalPath, cchPhysicalPath); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetUrl(); + + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + char* GetPhysicalPath(); + + [VtblIndex(3)] + HRESULT SetPhysicalPath([NativeTypeName("PCWSTR")] char* pszPhysicalPath, [NativeTypeName("DWORD")] uint cchPhysicalPath); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetUrl; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetPhysicalPath; + + [NativeTypeName("HRESULT (PCWSTR, DWORD)")] + public delegate* unmanaged[MemberFunction] SetPhysicalPath; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IMetadataInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IMetadataInfo.cs new file mode 100644 index 0000000000..44afc1ad6a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IMetadataInfo.cs @@ -0,0 +1,87 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("48B10633-825D-495E-93B0-225380053E8E")] +public unsafe partial struct IMetadataInfo : IMetadataInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IMetadataInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetMetaPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetVrPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpTokenEntry* GetVrToken() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + char* GetMetaPath(); + + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + char* GetVrPath(); + + [VtblIndex(2)] + IHttpTokenEntry* GetVrToken(); + + [VtblIndex(3)] + IHttpModuleContextContainer* GetModuleContextContainer(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetMetaPath; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetVrPath; + + [NativeTypeName("IHttpTokenEntry *()")] + public delegate* unmanaged[MemberFunction] GetVrToken; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IModuleAllocator.cs b/sources/Interop/Windows/Windows/um/httpserv/IModuleAllocator.cs new file mode 100644 index 0000000000..cb8fd81960 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IModuleAllocator.cs @@ -0,0 +1,41 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("85C1679C-0B21-491C-AFB5-C7B5C86464C4")] +public unsafe partial struct IModuleAllocator : IModuleAllocator.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IModuleAllocator)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void* AllocateMemory([NativeTypeName("DWORD")] uint cbAllocation) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IModuleAllocator*)Unsafe.AsPointer(ref this), cbAllocation); + } + + public interface Interface + { + [VtblIndex(0)] + void* AllocateMemory([NativeTypeName("DWORD")] uint cbAllocation); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void *(DWORD)")] + public delegate* unmanaged[MemberFunction] AllocateMemory; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/INamedContextContainer.cs b/sources/Interop/Windows/Windows/um/httpserv/INamedContextContainer.cs new file mode 100644 index 0000000000..d5e6f2ef77 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/INamedContextContainer.cs @@ -0,0 +1,55 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("16DB6F7C-1A94-47CA-A8E8-FEA6005FF3BA")] +public unsafe partial struct INamedContextContainer : INamedContextContainer.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_INamedContextContainer)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public IHttpStoredContext* GetNamedContext([NativeTypeName("LPCWSTR")] char* szName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((INamedContextContainer*)Unsafe.AsPointer(ref this), szName); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public HRESULT SetNamedContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("LPCWSTR")] char* szName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((INamedContextContainer*)Unsafe.AsPointer(ref this), ppStoredContext, szName); + } + + public interface Interface + { + [VtblIndex(0)] + IHttpStoredContext* GetNamedContext([NativeTypeName("LPCWSTR")] char* szName); + + [VtblIndex(1)] + HRESULT SetNamedContext(IHttpStoredContext* ppStoredContext, [NativeTypeName("LPCWSTR")] char* szName); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("IHttpStoredContext *(LPCWSTR)")] + public delegate* unmanaged[MemberFunction] GetNamedContext; + + [NativeTypeName("HRESULT (IHttpStoredContext *, LPCWSTR)")] + public delegate* unmanaged[MemberFunction] SetNamedContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProvider.cs new file mode 100644 index 0000000000..15d3f40359 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProvider.cs @@ -0,0 +1,54 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("FB715D26-AFF9-476A-8FC0-6B1ACB3D1098")] +[NativeTypeName("struct IPreBeginRequestProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IPreBeginRequestProvider : IPreBeginRequestProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IPreBeginRequestProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPreBeginRequestProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public IHttpContext* GetHttpContext() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPreBeginRequestProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + IHttpContext* GetHttpContext(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("IHttpContext *()")] + public delegate* unmanaged[MemberFunction] GetHttpContext; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IReadEntityProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/IReadEntityProvider.cs new file mode 100644 index 0000000000..26423d5eac --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IReadEntityProvider.cs @@ -0,0 +1,68 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("FE6D905A-99B8-49FD-B389-CFC809562B81")] +[NativeTypeName("struct IReadEntityProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct IReadEntityProvider : IReadEntityProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IReadEntityProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IReadEntityProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public void GetEntity([NativeTypeName("PVOID *")] void** ppBuffer, [NativeTypeName("DWORD *")] uint* pcbData, [NativeTypeName("DWORD *")] uint* pcbBuffer) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IReadEntityProvider*)Unsafe.AsPointer(ref this), ppBuffer, pcbData, pcbBuffer); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void SetEntity([NativeTypeName("PVOID")] void* pBuffer, [NativeTypeName("DWORD")] uint cbData, [NativeTypeName("DWORD")] uint cbBuffer) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IReadEntityProvider*)Unsafe.AsPointer(ref this), pBuffer, cbData, cbBuffer); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + void GetEntity([NativeTypeName("PVOID *")] void** ppBuffer, [NativeTypeName("DWORD *")] uint* pcbData, [NativeTypeName("DWORD *")] uint* pcbBuffer); + + [VtblIndex(2)] + void SetEntity([NativeTypeName("PVOID")] void* pBuffer, [NativeTypeName("DWORD")] uint cbData, [NativeTypeName("DWORD")] uint cbBuffer); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("void (PVOID *, DWORD *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetEntity; + + [NativeTypeName("void (PVOID, DWORD, DWORD)")] + public delegate* unmanaged[MemberFunction] SetEntity; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfo.cs new file mode 100644 index 0000000000..b30fa07515 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfo.cs @@ -0,0 +1,103 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("3FC5C336-9AD7-45EA-AF2F-31B59302C9FE")] +[NativeTypeName("struct IReferencedMetadataInfo : IMetadataInfo")] +[NativeInheritance("IMetadataInfo")] +public unsafe partial struct IReferencedMetadataInfo : IReferencedMetadataInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IReferencedMetadataInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetMetaPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCWSTR")] + public char* GetVrPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public IHttpTokenEntry* GetVrToken() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public IHttpModuleContextContainer* GetModuleContextContainer() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public void ReferenceMetadata() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public void DereferenceMetadata() + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IReferencedMetadataInfo*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IMetadataInfo.Interface + { + [VtblIndex(4)] + void ReferenceMetadata(); + + [VtblIndex(5)] + void DereferenceMetadata(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetMetaPath; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetVrPath; + + [NativeTypeName("IHttpTokenEntry *()")] + public delegate* unmanaged[MemberFunction] GetVrToken; + + [NativeTypeName("IHttpModuleContextContainer *()")] + public delegate* unmanaged[MemberFunction] GetModuleContextContainer; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] ReferenceMetadata; + + [NativeTypeName("void ()")] + public delegate* unmanaged[MemberFunction] DereferenceMetadata; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/IScriptMapInfo.cs b/sources/Interop/Windows/Windows/um/httpserv/IScriptMapInfo.cs new file mode 100644 index 0000000000..aee89a6a4a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/IScriptMapInfo.cs @@ -0,0 +1,199 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("D7FE3D77-68BC-4D4A-851F-EEC9FB68017C")] +public unsafe partial struct IScriptMapInfo : IScriptMapInfo.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IScriptMapInfo)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + public char* GetPath() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("PCSTR")] + public sbyte* GetAllowedVerbs() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + public char* GetModules([NativeTypeName("DWORD *")] uint* pcchModules = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IScriptMapInfo*)Unsafe.AsPointer(ref this), pcchModules); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + [return: NativeTypeName("PCWSTR")] + public char* GetScriptProcessor([NativeTypeName("DWORD *")] uint* pcchScriptProcessor = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IScriptMapInfo*)Unsafe.AsPointer(ref this), pcchScriptProcessor); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + [return: NativeTypeName("PCWSTR")] + public char* GetManagedType([NativeTypeName("DWORD *")] uint* pcchManagedType = null) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IScriptMapInfo*)Unsafe.AsPointer(ref this), pcchManagedType); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public BOOL GetAllowPathInfoForScriptMappings() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + [return: NativeTypeName("DWORD")] + public uint GetRequiredAccess() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(7)] + [return: NativeTypeName("DWORD")] + public uint GetResourceType() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(8)] + public BOOL GetIsStarScriptMap() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(9)] + [return: NativeTypeName("DWORD")] + public uint GetResponseBufferLimit() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(10)] + [return: NativeTypeName("PCWSTR")] + public char* GetName() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((IScriptMapInfo*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("PCWSTR")] + char* GetPath(); + + [VtblIndex(1)] + [return: NativeTypeName("PCSTR")] + sbyte* GetAllowedVerbs(); + + [VtblIndex(2)] + [return: NativeTypeName("PCWSTR")] + char* GetModules([NativeTypeName("DWORD *")] uint* pcchModules = null); + + [VtblIndex(3)] + [return: NativeTypeName("PCWSTR")] + char* GetScriptProcessor([NativeTypeName("DWORD *")] uint* pcchScriptProcessor = null); + + [VtblIndex(4)] + [return: NativeTypeName("PCWSTR")] + char* GetManagedType([NativeTypeName("DWORD *")] uint* pcchManagedType = null); + + [VtblIndex(5)] + BOOL GetAllowPathInfoForScriptMappings(); + + [VtblIndex(6)] + [return: NativeTypeName("DWORD")] + uint GetRequiredAccess(); + + [VtblIndex(7)] + [return: NativeTypeName("DWORD")] + uint GetResourceType(); + + [VtblIndex(8)] + BOOL GetIsStarScriptMap(); + + [VtblIndex(9)] + [return: NativeTypeName("DWORD")] + uint GetResponseBufferLimit(); + + [VtblIndex(10)] + [return: NativeTypeName("PCWSTR")] + char* GetName(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetPath; + + [NativeTypeName("PCSTR () const")] + public delegate* unmanaged[MemberFunction] GetAllowedVerbs; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetModules; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetScriptProcessor; + + [NativeTypeName("PCWSTR (DWORD *) const")] + public delegate* unmanaged[MemberFunction] GetManagedType; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetAllowPathInfoForScriptMappings; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetRequiredAccess; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetResourceType; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetIsStarScriptMap; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetResponseBufferLimit; + + [NativeTypeName("PCWSTR () const")] + public delegate* unmanaged[MemberFunction] GetName; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/ISendResponseProvider.cs b/sources/Interop/Windows/Windows/um/httpserv/ISendResponseProvider.cs new file mode 100644 index 0000000000..408623c32a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/ISendResponseProvider.cs @@ -0,0 +1,126 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows; + +/// +[Guid("57F2E7BC-0BCF-4A9F-94A4-10E55C6E5B51")] +[NativeTypeName("struct ISendResponseProvider : IHttpEventProvider")] +[NativeInheritance("IHttpEventProvider")] +public unsafe partial struct ISendResponseProvider : ISendResponseProvider.Interface, INativeGuid +{ + static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ISendResponseProvider)); + + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + public void SetErrorStatus(HRESULT hrError) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ISendResponseProvider*)Unsafe.AsPointer(ref this), hrError); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + public BOOL GetHeadersBeingSent() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ISendResponseProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + [return: NativeTypeName("DWORD")] + public uint GetFlags() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((ISendResponseProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void SetFlags([NativeTypeName("DWORD")] uint dwFlags) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((ISendResponseProvider*)Unsafe.AsPointer(ref this), dwFlags); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HTTP_LOG_DATA* GetLogData() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((ISendResponseProvider*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT SetLogData(HTTP_LOG_DATA* pLogData) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((ISendResponseProvider*)Unsafe.AsPointer(ref this), pLogData); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public BOOL GetReadyToLogData() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((ISendResponseProvider*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IHttpEventProvider.Interface + { + [VtblIndex(1)] + BOOL GetHeadersBeingSent(); + + [VtblIndex(2)] + [return: NativeTypeName("DWORD")] + uint GetFlags(); + + [VtblIndex(3)] + void SetFlags([NativeTypeName("DWORD")] uint dwFlags); + + [VtblIndex(4)] + HTTP_LOG_DATA* GetLogData(); + + [VtblIndex(5)] + HRESULT SetLogData(HTTP_LOG_DATA* pLogData); + + [VtblIndex(6)] + BOOL GetReadyToLogData(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("void (HRESULT)")] + public delegate* unmanaged[MemberFunction] SetErrorStatus; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetHeadersBeingSent; + + [NativeTypeName("DWORD () const")] + public delegate* unmanaged[MemberFunction] GetFlags; + + [NativeTypeName("void (DWORD)")] + public delegate* unmanaged[MemberFunction] SetFlags; + + [NativeTypeName("HTTP_LOG_DATA *() const")] + public delegate* unmanaged[MemberFunction] GetLogData; + + [NativeTypeName("HRESULT (HTTP_LOG_DATA *)")] + public delegate* unmanaged[MemberFunction] SetLogData; + + [NativeTypeName("BOOL () const")] + public delegate* unmanaged[MemberFunction] GetReadyToLogData; + } +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/REQUEST_NOTIFICATION_STATUS.cs b/sources/Interop/Windows/Windows/um/httpserv/REQUEST_NOTIFICATION_STATUS.cs new file mode 100644 index 0000000000..41974c0f83 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/REQUEST_NOTIFICATION_STATUS.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum REQUEST_NOTIFICATION_STATUS +{ + /// + RQ_NOTIFICATION_CONTINUE, + + /// + RQ_NOTIFICATION_PENDING, + + /// + RQ_NOTIFICATION_FINISH_REQUEST, +} diff --git a/sources/Interop/Windows/Windows/um/httpserv/Windows.cs b/sources/Interop/Windows/Windows/um/httpserv/Windows.cs new file mode 100644 index 0000000000..c289145dd8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httpserv/Windows.cs @@ -0,0 +1,122 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop.Windows; + +public static partial class Windows +{ + [NativeTypeName("#define RQ_BEGIN_REQUEST 0x00000001")] + public const int RQ_BEGIN_REQUEST = 0x00000001; + + [NativeTypeName("#define RQ_AUTHENTICATE_REQUEST 0x00000002")] + public const int RQ_AUTHENTICATE_REQUEST = 0x00000002; + + [NativeTypeName("#define RQ_AUTHORIZE_REQUEST 0x00000004")] + public const int RQ_AUTHORIZE_REQUEST = 0x00000004; + + [NativeTypeName("#define RQ_RESOLVE_REQUEST_CACHE 0x00000008")] + public const int RQ_RESOLVE_REQUEST_CACHE = 0x00000008; + + [NativeTypeName("#define RQ_MAP_REQUEST_HANDLER 0x00000010")] + public const int RQ_MAP_REQUEST_HANDLER = 0x00000010; + + [NativeTypeName("#define RQ_ACQUIRE_REQUEST_STATE 0x00000020")] + public const int RQ_ACQUIRE_REQUEST_STATE = 0x00000020; + + [NativeTypeName("#define RQ_PRE_EXECUTE_REQUEST_HANDLER 0x00000040")] + public const int RQ_PRE_EXECUTE_REQUEST_HANDLER = 0x00000040; + + [NativeTypeName("#define RQ_EXECUTE_REQUEST_HANDLER 0x00000080")] + public const int RQ_EXECUTE_REQUEST_HANDLER = 0x00000080; + + [NativeTypeName("#define RQ_RELEASE_REQUEST_STATE 0x00000100")] + public const int RQ_RELEASE_REQUEST_STATE = 0x00000100; + + [NativeTypeName("#define RQ_UPDATE_REQUEST_CACHE 0x00000200")] + public const int RQ_UPDATE_REQUEST_CACHE = 0x00000200; + + [NativeTypeName("#define RQ_LOG_REQUEST 0x00000400")] + public const int RQ_LOG_REQUEST = 0x00000400; + + [NativeTypeName("#define RQ_END_REQUEST 0x00000800")] + public const int RQ_END_REQUEST = 0x00000800; + + [NativeTypeName("#define RQ_SEND_RESPONSE_STATUS_AND_HEADERS 0x08000000")] + public const int RQ_SEND_RESPONSE_STATUS_AND_HEADERS = 0x08000000; + + [NativeTypeName("#define RQ_CUSTOM_NOTIFICATION 0x10000000")] + public const int RQ_CUSTOM_NOTIFICATION = 0x10000000; + + [NativeTypeName("#define RQ_SEND_RESPONSE 0x20000000")] + public const int RQ_SEND_RESPONSE = 0x20000000; + + [NativeTypeName("#define RQ_READ_ENTITY 0x40000000")] + public const int RQ_READ_ENTITY = 0x40000000; + + [NativeTypeName("#define RQ_MAP_PATH 0x80000000")] + public const uint RQ_MAP_PATH = 0x80000000; + + [NativeTypeName("#define PRIORITY_ALIAS_FIRST L\"FIRST\"")] + public const string PRIORITY_ALIAS_FIRST = "FIRST"; + + [NativeTypeName("#define PRIORITY_ALIAS_HIGH L\"HIGH\"")] + public const string PRIORITY_ALIAS_HIGH = "HIGH"; + + [NativeTypeName("#define PRIORITY_ALIAS_MEDIUM L\"MEDIUM\"")] + public const string PRIORITY_ALIAS_MEDIUM = "MEDIUM"; + + [NativeTypeName("#define PRIORITY_ALIAS_LOW L\"LOW\"")] + public const string PRIORITY_ALIAS_LOW = "LOW"; + + [NativeTypeName("#define PRIORITY_ALIAS_LAST L\"LAST\"")] + public const string PRIORITY_ALIAS_LAST = "LAST"; + + [NativeTypeName("#define CLONE_FLAG_BASICS 0x01")] + public const int CLONE_FLAG_BASICS = 0x01; + + [NativeTypeName("#define CLONE_FLAG_HEADERS 0x02")] + public const int CLONE_FLAG_HEADERS = 0x02; + + [NativeTypeName("#define CLONE_FLAG_ENTITY 0x04")] + public const int CLONE_FLAG_ENTITY = 0x04; + + [NativeTypeName("#define CLONE_FLAG_NO_PRECONDITION 0x08")] + public const int CLONE_FLAG_NO_PRECONDITION = 0x08; + + [NativeTypeName("#define CLONE_FLAG_NO_DAV 0x10")] + public const int CLONE_FLAG_NO_DAV = 0x10; + + [NativeTypeName("#define CLONE_FLAG_USER_CACHE_VARY_BY 0x20")] + public const int CLONE_FLAG_USER_CACHE_VARY_BY = 0x20; + + [NativeTypeName("#define CLONE_FLAG_SERVER_VARIABLE 0x40")] + public const int CLONE_FLAG_SERVER_VARIABLE = 0x40; + + [NativeTypeName("#define EXECUTE_FLAG_NO_HEADERS 0x01")] + public const int EXECUTE_FLAG_NO_HEADERS = 0x01; + + [NativeTypeName("#define EXECUTE_FLAG_IGNORE_CURRENT_INTERCEPTOR 0x02")] + public const int EXECUTE_FLAG_IGNORE_CURRENT_INTERCEPTOR = 0x02; + + [NativeTypeName("#define EXECUTE_FLAG_IGNORE_APPPOOL 0x04")] + public const int EXECUTE_FLAG_IGNORE_APPPOOL = 0x04; + + [NativeTypeName("#define EXECUTE_FLAG_DISABLE_CUSTOM_ERROR 0x08")] + public const int EXECUTE_FLAG_DISABLE_CUSTOM_ERROR = 0x08; + + [NativeTypeName("#define EXECUTE_FLAG_SAME_URL 0x10")] + public const int EXECUTE_FLAG_SAME_URL = 0x10; + + [NativeTypeName("#define EXECUTE_FLAG_BUFFER_RESPONSE 0x20")] + public const int EXECUTE_FLAG_BUFFER_RESPONSE = 0x20; + + [NativeTypeName("#define EXECUTE_FLAG_HTTP_CACHE_ELIGIBLE 0x40")] + public const int EXECUTE_FLAG_HTTP_CACHE_ELIGIBLE = 0x40; + + [NativeTypeName("#define MODULE_REGISTERMODULE \"RegisterModule\"")] + public static ReadOnlySpan MODULE_REGISTERMODULE => "RegisterModule"u8; +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/GUID.cs b/sources/Interop/Windows/Windows/um/httptrace/GUID.cs new file mode 100644 index 0000000000..31947f30c8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/GUID.cs @@ -0,0 +1,189 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +public static partial class GUID +{ + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_ALL_TRACE_PROVIDERS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_WWW_SERVER_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0x84, 0x4E, 0x2A, 0x3A, + 0x21, 0x4C, + 0x81, 0x49, + 0xAE, + 0x10, + 0x3F, + 0xDA, + 0x0D, + 0x9B, + 0x0F, + 0x83 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_WWW_SERVER_V2_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0xC9, 0x49, 0x46, 0xDE, + 0xE8, 0x15, + 0xEA, 0x4F, + 0x9D, + 0x85, + 0x1C, + 0xDD, + 0xA5, + 0x20, + 0xC3, + 0x34 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_ASPNET_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0xFE, 0x81, 0xF0, 0xAF, + 0x47, 0x02, + 0x75, 0x42, + 0x9C, + 0x4E, + 0x02, + 0x1F, + 0x3D, + 0xC1, + 0xDA, + 0x35 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_ASP_TRACE_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0x9A, 0x4D, 0xB9, 0x06, + 0x5E, 0xB1, + 0x6E, 0x45, + 0xA4, + 0xEF, + 0x37, + 0xC9, + 0x84, + 0xA2, + 0xCB, + 0x4B + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_WWW_GLOBAL_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0xC9, 0x3B, 0x5D, 0xD5, + 0xA9, 0xCB, + 0xDF, 0x44, + 0x82, + 0x7E, + 0x13, + 0x2D, + 0x3A, + 0x45, + 0x96, + 0xC2 + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + [NativeTypeName("const GUID")] + public static ref readonly Guid GUID_IIS_ISAPI_TRACE_PROVIDER + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = [ + 0x0E, 0x04, 0xC2, 0xA1, + 0x40, 0x88, + 0x31, 0x4C, + 0xBA, + 0x11, + 0x98, + 0x71, + 0x03, + 0x1A, + 0x19, + 0xEA + ]; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/HTTP.cs b/sources/Interop/Windows/Windows/um/httptrace/HTTP.cs new file mode 100644 index 0000000000..5fc1026df1 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/HTTP.cs @@ -0,0 +1,18 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +public static partial class HTTP +{ + [NativeTypeName("#define HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS 0x01")] + public const int HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS = 0x01; + + [NativeTypeName("#define HTTP_TRACE_LEVEL_START 6")] + public const int HTTP_TRACE_LEVEL_START = 6; + + [NativeTypeName("#define HTTP_TRACE_LEVEL_END 7")] + public const int HTTP_TRACE_LEVEL_END = 7; +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_CONFIGURATION.cs b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_CONFIGURATION.cs new file mode 100644 index 0000000000..72592c3ac8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_CONFIGURATION.cs @@ -0,0 +1,27 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TRACE_CONFIGURATION +{ + /// + [NativeTypeName("LPCGUID")] + public Guid* pProviderGuid; + + /// + [NativeTypeName("DWORD")] + public uint dwAreas; + + /// + [NativeTypeName("DWORD")] + public uint dwVerbosity; + + /// + public BOOL fProviderEnabled; +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT.cs b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT.cs new file mode 100644 index 0000000000..a69970a691 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT.cs @@ -0,0 +1,64 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TRACE_EVENT +{ + /// + [NativeTypeName("LPCGUID")] + public Guid* pProviderGuid; + + /// + [NativeTypeName("DWORD")] + public uint dwArea; + + /// + [NativeTypeName("LPCGUID")] + public Guid* pAreaGuid; + + /// + [NativeTypeName("DWORD")] + public uint dwEvent; + + /// + [NativeTypeName("LPCWSTR")] + public char* pszEventName; + + /// + [NativeTypeName("DWORD")] + public uint dwEventVersion; + + /// + [NativeTypeName("DWORD")] + public uint dwVerbosity; + + /// + [NativeTypeName("LPCGUID")] + public Guid* pActivityGuid; + + /// + [NativeTypeName("LPCGUID")] + public Guid* pRelatedActivityGuid; + + /// + [NativeTypeName("DWORD")] + public uint dwTimeStamp; + + /// + [NativeTypeName("DWORD")] + public uint dwFlags; + + /// + [NativeTypeName("DWORD")] + public uint cEventItems; + + /// + [NativeTypeName("struct HTTP_TRACE_EVENT_ITEM *")] + public HTTP_TRACE_EVENT_ITEM* pEventItems; +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT_ITEM.cs b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT_ITEM.cs new file mode 100644 index 0000000000..965618384f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_EVENT_ITEM.cs @@ -0,0 +1,30 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct HTTP_TRACE_EVENT_ITEM +{ + /// + [NativeTypeName("LPCWSTR")] + public char* pszName; + + /// + [NativeTypeName("enum HTTP_TRACE_TYPE")] + public HTTP_TRACE_TYPE dwDataType; + + /// + [NativeTypeName("PBYTE")] + public byte* pbData; + + /// + [NativeTypeName("DWORD")] + public uint cbData; + + /// + [NativeTypeName("LPCWSTR")] + public char* pszDataDescription; +} diff --git a/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_TYPE.cs b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_TYPE.cs new file mode 100644 index 0000000000..db7a807890 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/httptrace/HTTP_TRACE_TYPE.cs @@ -0,0 +1,46 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum HTTP_TRACE_TYPE +{ + /// + HTTP_TRACE_TYPE_BYTE = 17, + + /// + HTTP_TRACE_TYPE_USHORT = 18, + + /// + HTTP_TRACE_TYPE_ULONG = 19, + + /// + HTTP_TRACE_TYPE_ULONGLONG = 21, + + /// + HTTP_TRACE_TYPE_CHAR = 16, + + /// + HTTP_TRACE_TYPE_SHORT = 2, + + /// + HTTP_TRACE_TYPE_LONG = 3, + + /// + HTTP_TRACE_TYPE_LONGLONG = 20, + + /// + HTTP_TRACE_TYPE_LPCWSTR = 31, + + /// + HTTP_TRACE_TYPE_LPCSTR = 30, + + /// + HTTP_TRACE_TYPE_LPCGUID = 72, + + /// + HTTP_TRACE_TYPE_BOOL = 11, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/DEFAULT.cs b/sources/Interop/Windows/Windows/um/wpframework/DEFAULT.cs new file mode 100644 index 0000000000..cf179aaa70 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/DEFAULT.cs @@ -0,0 +1,12 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +public static partial class DEFAULT +{ + [NativeTypeName("#define DEFAULT_PROTOCOL_MANAGER_INIT_FUNCTION L\"GetProtocolManager\"")] + public const string DEFAULT_PROTOCOL_MANAGER_INIT_FUNCTION = "GetProtocolManager"; +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/ICustomAction2ResultCallback.cs b/sources/Interop/Windows/Windows/um/wpframework/ICustomAction2ResultCallback.cs new file mode 100644 index 0000000000..2a1f371b75 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/ICustomAction2ResultCallback.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct ICustomAction2ResultCallback : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct ICustomAction2ResultCallback : ICustomAction2ResultCallback.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ICustomAction2ResultCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ICustomAction2ResultCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ReportResult(HRESULT hrStatus, BOOL fFinalResponse, [NativeTypeName("PBYTE")] byte* pbResponse, [NativeTypeName("DWORD")] uint cbResponse) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((ICustomAction2ResultCallback*)Unsafe.AsPointer(ref this), hrStatus, fFinalResponse, pbResponse, cbResponse); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT ReportResult(HRESULT hrStatus, BOOL fFinalResponse, [NativeTypeName("PBYTE")] byte* pbResponse, [NativeTypeName("DWORD")] uint cbResponse); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (HRESULT, BOOL, PBYTE, DWORD)")] + public delegate* unmanaged[MemberFunction] ReportResult; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/ICustomActionResultCallback.cs b/sources/Interop/Windows/Windows/um/wpframework/ICustomActionResultCallback.cs new file mode 100644 index 0000000000..68a510bb77 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/ICustomActionResultCallback.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct ICustomActionResultCallback : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct ICustomActionResultCallback : ICustomActionResultCallback.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ICustomActionResultCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ICustomActionResultCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ReportResult(HRESULT hrStatus, [NativeTypeName("PBYTE")] byte* pbResponse, [NativeTypeName("DWORD")] uint cbResponse) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((ICustomActionResultCallback*)Unsafe.AsPointer(ref this), hrStatus, pbResponse, cbResponse); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT ReportResult(HRESULT hrStatus, [NativeTypeName("PBYTE")] byte* pbResponse, [NativeTypeName("DWORD")] uint cbResponse); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (HRESULT, PBYTE, DWORD)")] + public delegate* unmanaged[MemberFunction] ReportResult; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IHealthStatusCallback.cs b/sources/Interop/Windows/Windows/um/wpframework/IHealthStatusCallback.cs new file mode 100644 index 0000000000..81cfe206db --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IHealthStatusCallback.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IHealthStatusCallback : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IHealthStatusCallback : IHealthStatusCallback.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IHealthStatusCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IHealthStatusCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ReportHealth(BOOL fHealthy) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IHealthStatusCallback*)Unsafe.AsPointer(ref this), fHealthy); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT ReportHealth(BOOL fHealthy); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BOOL)")] + public delegate* unmanaged[MemberFunction] ReportHealth; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmApplicationPreload.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmApplicationPreload.cs new file mode 100644 index 0000000000..7cb5d67a38 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmApplicationPreload.cs @@ -0,0 +1,62 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmApplicationPreload : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmApplicationPreload : IPmApplicationPreload.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmApplicationPreload*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmApplicationPreload*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT PreloadApplication([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszAppConfigPath, [Optional] BOOL fRecycledWorkerProcess) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmApplicationPreload*)Unsafe.AsPointer(ref this), dwSiteId, pszAppConfigPath, fRecycledWorkerProcess); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT PreloadApplication([NativeTypeName("DWORD")] uint dwSiteId, [NativeTypeName("PCWSTR")] char* pszAppConfigPath, [Optional] BOOL fRecycledWorkerProcess); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (DWORD, PCWSTR, BOOL)")] + public delegate* unmanaged[MemberFunction] PreloadApplication; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions.cs new file mode 100644 index 0000000000..979d6b5aa0 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmCustomActions : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmCustomActions : IPmCustomActions.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmCustomActions*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmCustomActions*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT RunCustomAction([NativeTypeName("PCWSTR")] char* pszFunctionName, [NativeTypeName("PCWSTR")] char* pszFunctionArgs, ICustomActionResultCallback* pCompletionCallbackClass) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmCustomActions*)Unsafe.AsPointer(ref this), pszFunctionName, pszFunctionArgs, pCompletionCallbackClass); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT RunCustomAction([NativeTypeName("PCWSTR")] char* pszFunctionName, [NativeTypeName("PCWSTR")] char* pszFunctionArgs, ICustomActionResultCallback* pCompletionCallbackClass); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, ICustomActionResultCallback *)")] + public delegate* unmanaged[MemberFunction] RunCustomAction; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions2.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions2.cs new file mode 100644 index 0000000000..7c796e59ad --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmCustomActions2.cs @@ -0,0 +1,75 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmCustomActions2 : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmCustomActions2 : IPmCustomActions2.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmCustomActions2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmCustomActions2*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT RegisterCustomActionCallback([NativeTypeName("PCWSTR")] char* pszFunctionName, [NativeTypeName("PCWSTR")] char* pszFunctionArgs, ICustomAction2ResultCallback* pCompletionCallbackClass) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmCustomActions2*)Unsafe.AsPointer(ref this), pszFunctionName, pszFunctionArgs, pCompletionCallbackClass); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT UnregisterCustomActionCallback([NativeTypeName("PCWSTR")] char* pszFunctionName) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IPmCustomActions2*)Unsafe.AsPointer(ref this), pszFunctionName); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT RegisterCustomActionCallback([NativeTypeName("PCWSTR")] char* pszFunctionName, [NativeTypeName("PCWSTR")] char* pszFunctionArgs, ICustomAction2ResultCallback* pCompletionCallbackClass); + + [VtblIndex(3)] + HRESULT UnregisterCustomActionCallback([NativeTypeName("PCWSTR")] char* pszFunctionName); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, ICustomAction2ResultCallback *)")] + public delegate* unmanaged[MemberFunction] RegisterCustomActionCallback; + + [NativeTypeName("HRESULT (PCWSTR)")] + public delegate* unmanaged[MemberFunction] UnregisterCustomActionCallback; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmHealthAndIdleMonitor.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmHealthAndIdleMonitor.cs new file mode 100644 index 0000000000..f7fc3a5332 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmHealthAndIdleMonitor.cs @@ -0,0 +1,75 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmHealthAndIdleMonitor : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmHealthAndIdleMonitor : IPmHealthAndIdleMonitor.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmHealthAndIdleMonitor*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmHealthAndIdleMonitor*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT CheckIdle(BOOL* pfIdle) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmHealthAndIdleMonitor*)Unsafe.AsPointer(ref this), pfIdle); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT CheckHealth(IHealthStatusCallback* pIHealthStatusCallback) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IPmHealthAndIdleMonitor*)Unsafe.AsPointer(ref this), pIHealthStatusCallback); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT CheckIdle(BOOL* pfIdle); + + [VtblIndex(3)] + HRESULT CheckHealth(IHealthStatusCallback* pIHealthStatusCallback); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (BOOL *)")] + public delegate* unmanaged[MemberFunction] CheckIdle; + + [NativeTypeName("HRESULT (IHealthStatusCallback *)")] + public delegate* unmanaged[MemberFunction] CheckHealth; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmIdleTimeOutAction.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmIdleTimeOutAction.cs new file mode 100644 index 0000000000..bce2573cc7 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmIdleTimeOutAction.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmIdleTimeOutAction : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmIdleTimeOutAction : IPmIdleTimeOutAction.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmIdleTimeOutAction*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmIdleTimeOutAction*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT SuspendProcess() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmIdleTimeOutAction*)Unsafe.AsPointer(ref this)); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT SuspendProcess(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] SuspendProcess; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IPmListenerChannelManager.cs b/sources/Interop/Windows/Windows/um/wpframework/IPmListenerChannelManager.cs new file mode 100644 index 0000000000..2b3a7eff97 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IPmListenerChannelManager.cs @@ -0,0 +1,75 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IPmListenerChannelManager : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IPmListenerChannelManager : IPmListenerChannelManager.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IPmListenerChannelManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IPmListenerChannelManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT StartListenerChannel([NativeTypeName("PCWSTR")] char* protocolId, IWpfListenerChannelCallback* pListenerChannelCallback) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IPmListenerChannelManager*)Unsafe.AsPointer(ref this), protocolId, pListenerChannelCallback); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT StopListenerChannel([NativeTypeName("PCWSTR")] char* protocolId, IWpfListenerChannelCallback* pListenerChannelCallback, BOOL fImmediate) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IPmListenerChannelManager*)Unsafe.AsPointer(ref this), protocolId, pListenerChannelCallback, fImmediate); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT StartListenerChannel([NativeTypeName("PCWSTR")] char* protocolId, IWpfListenerChannelCallback* pListenerChannelCallback); + + [VtblIndex(3)] + HRESULT StopListenerChannel([NativeTypeName("PCWSTR")] char* protocolId, IWpfListenerChannelCallback* pListenerChannelCallback, BOOL fImmediate); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, IWpfListenerChannelCallback *)")] + public delegate* unmanaged[MemberFunction] StartListenerChannel; + + [NativeTypeName("HRESULT (PCWSTR, IWpfListenerChannelCallback *, BOOL)")] + public delegate* unmanaged[MemberFunction] StopListenerChannel; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IProtocolManager.cs b/sources/Interop/Windows/Windows/um/wpframework/IProtocolManager.cs new file mode 100644 index 0000000000..d5aa9c1219 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IProtocolManager.cs @@ -0,0 +1,89 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IProtocolManager : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IProtocolManager : IProtocolManager.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IProtocolManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IProtocolManager*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT GetPmInterface(PM_INTERFACE_ID_ENUM PmInterfaceId, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IProtocolManager*)Unsafe.AsPointer(ref this), PmInterfaceId, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetCustomInterface([NativeTypeName("DWORD")] uint InterfaceId, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IProtocolManager*)Unsafe.AsPointer(ref this), InterfaceId, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT Shutdown(BOOL fImmediate) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IProtocolManager*)Unsafe.AsPointer(ref this), fImmediate); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT GetPmInterface(PM_INTERFACE_ID_ENUM PmInterfaceId, [NativeTypeName("PVOID *")] void** ppInterface); + + [VtblIndex(3)] + HRESULT GetCustomInterface([NativeTypeName("DWORD")] uint InterfaceId, [NativeTypeName("PVOID *")] void** ppInterface); + + [VtblIndex(4)] + HRESULT Shutdown(BOOL fImmediate); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PM_INTERFACE_ID_ENUM, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetPmInterface; + + [NativeTypeName("HRESULT (DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetCustomInterface; + + [NativeTypeName("HRESULT (BOOL)")] + public delegate* unmanaged[MemberFunction] Shutdown; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWorkerProcessFramework.cs b/sources/Interop/Windows/Windows/um/wpframework/IWorkerProcessFramework.cs new file mode 100644 index 0000000000..24dbb6ba24 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWorkerProcessFramework.cs @@ -0,0 +1,89 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWorkerProcessFramework : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWorkerProcessFramework : IWorkerProcessFramework.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWorkerProcessFramework*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWorkerProcessFramework*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT GetWpfInterface(WPF_INTERFACE_ID_ENUM WpfInterfaceId, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWorkerProcessFramework*)Unsafe.AsPointer(ref this), WpfInterfaceId, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetCustomInterface([NativeTypeName("DWORD")] uint InterfaceId, [NativeTypeName("PVOID *")] void** ppInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IWorkerProcessFramework*)Unsafe.AsPointer(ref this), InterfaceId, ppInterface); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetInterfaceVersion([NativeTypeName("PDWORD")] uint* pdwMajorVersion, [NativeTypeName("PDWORD")] uint* pdwMinorVersion) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IWorkerProcessFramework*)Unsafe.AsPointer(ref this), pdwMajorVersion, pdwMinorVersion); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT GetWpfInterface(WPF_INTERFACE_ID_ENUM WpfInterfaceId, [NativeTypeName("PVOID *")] void** ppInterface); + + [VtblIndex(3)] + HRESULT GetCustomInterface([NativeTypeName("DWORD")] uint InterfaceId, [NativeTypeName("PVOID *")] void** ppInterface); + + [VtblIndex(4)] + HRESULT GetInterfaceVersion([NativeTypeName("PDWORD")] uint* pdwMajorVersion, [NativeTypeName("PDWORD")] uint* pdwMinorVersion); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (WPF_INTERFACE_ID_ENUM, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetWpfInterface; + + [NativeTypeName("HRESULT (DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] GetCustomInterface; + + [NativeTypeName("HRESULT (PDWORD, PDWORD)")] + public delegate* unmanaged[MemberFunction] GetInterfaceVersion; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfActions.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfActions.cs new file mode 100644 index 0000000000..22e1585297 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfActions.cs @@ -0,0 +1,76 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfActions : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfActions : IWpfActions.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfActions*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfActions*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public void RecycleWorkerProcess([NativeTypeName("PCWSTR")] char* pszReason) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfActions*)Unsafe.AsPointer(ref this), pszReason); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public void FailWorkerProcess([NativeTypeName("PCWSTR")] char* pszReason, HRESULT hrFailureToReport, [Optional] BOOL fFailOnNextPing) + { + ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IWpfActions*)Unsafe.AsPointer(ref this), pszReason, hrFailureToReport, fFailOnNextPing); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + void RecycleWorkerProcess([NativeTypeName("PCWSTR")] char* pszReason); + + [VtblIndex(3)] + void FailWorkerProcess([NativeTypeName("PCWSTR")] char* pszReason, HRESULT hrFailureToReport, [Optional] BOOL fFailOnNextPing); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("void (PCWSTR)")] + public delegate* unmanaged[MemberFunction] RecycleWorkerProcess; + + [NativeTypeName("void (PCWSTR, HRESULT, BOOL)")] + public delegate* unmanaged[MemberFunction] FailWorkerProcess; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationInfoUtil.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationInfoUtil.cs new file mode 100644 index 0000000000..876bc3d4fb --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationInfoUtil.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfApplicationInfoUtil : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfApplicationInfoUtil : IWpfApplicationInfoUtil.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfApplicationInfoUtil*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfApplicationInfoUtil*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT GetApplicationPropertiesFromAppId([NativeTypeName("PCWSTR")] char* pszAppId, [NativeTypeName("PWSTR")] char* pszVirtualPath, [NativeTypeName("DWORD *")] uint* pcchVirtualPath, [NativeTypeName("DWORD *")] uint* pdwSiteId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfApplicationInfoUtil*)Unsafe.AsPointer(ref this), pszAppId, pszVirtualPath, pcchVirtualPath, pdwSiteId); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT GetApplicationPropertiesFromAppId([NativeTypeName("PCWSTR")] char* pszAppId, [NativeTypeName("PWSTR")] char* pszVirtualPath, [NativeTypeName("DWORD *")] uint* pcchVirtualPath, [NativeTypeName("DWORD *")] uint* pdwSiteId); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, PWSTR, DWORD *, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetApplicationPropertiesFromAppId; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationPreloadUtil.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationPreloadUtil.cs new file mode 100644 index 0000000000..7050b01b72 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfApplicationPreloadUtil.cs @@ -0,0 +1,75 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfApplicationPreloadUtil : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfApplicationPreloadUtil : IWpfApplicationPreloadUtil.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfApplicationPreloadUtil*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfApplicationPreloadUtil*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT GetApplicationPreloadInfo([NativeTypeName("PCWSTR")] char* pszConfigPath, BOOL* pfEnabled, [NativeTypeName("BSTR *")] char** pbstrType, SAFEARRAY** psaPreloadValues) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfApplicationPreloadUtil*)Unsafe.AsPointer(ref this), pszConfigPath, pfEnabled, pbstrType, psaPreloadValues); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT ReportApplicationPreloadFailure([NativeTypeName("PCWSTR")] char* pszConfigPath, HRESULT hrFailureCode, [NativeTypeName("PCWSTR")] char* pszErrorString) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IWpfApplicationPreloadUtil*)Unsafe.AsPointer(ref this), pszConfigPath, hrFailureCode, pszErrorString); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT GetApplicationPreloadInfo([NativeTypeName("PCWSTR")] char* pszConfigPath, BOOL* pfEnabled, [NativeTypeName("BSTR *")] char** pbstrType, SAFEARRAY** psaPreloadValues); + + [VtblIndex(3)] + HRESULT ReportApplicationPreloadFailure([NativeTypeName("PCWSTR")] char* pszConfigPath, HRESULT hrFailureCode, [NativeTypeName("PCWSTR")] char* pszErrorString); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, BOOL *, BSTR *, SAFEARRAY **)")] + public delegate* unmanaged[MemberFunction] GetApplicationPreloadInfo; + + [NativeTypeName("HRESULT (PCWSTR, HRESULT, PCWSTR)")] + public delegate* unmanaged[MemberFunction] ReportApplicationPreloadFailure; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfExposeProtocolManagerCustomInterface.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfExposeProtocolManagerCustomInterface.cs new file mode 100644 index 0000000000..ad8b71625a --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfExposeProtocolManagerCustomInterface.cs @@ -0,0 +1,61 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfExposeProtocolManagerCustomInterface : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfExposeProtocolManagerCustomInterface : IWpfExposeProtocolManagerCustomInterface.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfExposeProtocolManagerCustomInterface*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfExposeProtocolManagerCustomInterface*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT LoadProtocolManagerAndGetCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfExposeProtocolManagerCustomInterface*)Unsafe.AsPointer(ref this), pProtocolManagerDll, pProtocolManagerDllInitFunction, dwCustomInterfaceId, ppCustomInterface); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT LoadProtocolManagerAndGetCustomInterface([NativeTypeName("PCWSTR")] char* pProtocolManagerDll, [NativeTypeName("PCWSTR")] char* pProtocolManagerDllInitFunction, [NativeTypeName("DWORD")] uint dwCustomInterfaceId, [NativeTypeName("PVOID *")] void** ppCustomInterface); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (PCWSTR, PCWSTR, DWORD, PVOID *)")] + public delegate* unmanaged[MemberFunction] LoadProtocolManagerAndGetCustomInterface; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfListenerChannelCallback.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfListenerChannelCallback.cs new file mode 100644 index 0000000000..22b1e73770 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfListenerChannelCallback.cs @@ -0,0 +1,117 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfListenerChannelCallback : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfListenerChannelCallback : IWpfListenerChannelCallback.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT ReportStarted() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT ReportStopped(HRESULT hr) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this), hr); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT ReportMessageReceived() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT GetId([NativeTypeName("DWORD *")] uint* pdwListenerChannelId) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this), pdwListenerChannelId); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT GetBlob([NativeTypeName("PBYTE")] byte* pBlob, [NativeTypeName("DWORD *")] uint* pcbBlob) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IWpfListenerChannelCallback*)Unsafe.AsPointer(ref this), pBlob, pcbBlob); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT ReportStarted(); + + [VtblIndex(3)] + HRESULT ReportStopped(HRESULT hr); + + [VtblIndex(4)] + HRESULT ReportMessageReceived(); + + [VtblIndex(5)] + HRESULT GetId([NativeTypeName("DWORD *")] uint* pdwListenerChannelId); + + [VtblIndex(6)] + HRESULT GetBlob([NativeTypeName("PBYTE")] byte* pBlob, [NativeTypeName("DWORD *")] uint* pcbBlob); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReportStarted; + + [NativeTypeName("HRESULT (HRESULT)")] + public delegate* unmanaged[MemberFunction] ReportStopped; + + [NativeTypeName("HRESULT ()")] + public delegate* unmanaged[MemberFunction] ReportMessageReceived; + + [NativeTypeName("HRESULT (DWORD *)")] + public delegate* unmanaged[MemberFunction] GetId; + + [NativeTypeName("HRESULT (PBYTE, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetBlob; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfReferencedObject.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfReferencedObject.cs new file mode 100644 index 0000000000..4ed08b6c7f --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfReferencedObject.cs @@ -0,0 +1,53 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +public unsafe partial struct IWpfReferencedObject : IWpfReferencedObject.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfReferencedObject*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfReferencedObject*)Unsafe.AsPointer(ref this)); + } + + public interface Interface + { + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + uint AddRef(); + + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + uint Release(); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/IWpfSettings.cs b/sources/Interop/Windows/Windows/um/wpframework/IWpfSettings.cs new file mode 100644 index 0000000000..025cd398ec --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/IWpfSettings.cs @@ -0,0 +1,117 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +namespace TerraFX.Interop.Windows; + +/// +[NativeTypeName("struct IWpfSettings : IWpfReferencedObject")] +[NativeInheritance("IWpfReferencedObject")] +public unsafe partial struct IWpfSettings : IWpfSettings.Interface +{ + public void** lpVtbl; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(0)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((IWpfSettings*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(1)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((IWpfSettings*)Unsafe.AsPointer(ref this)); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(2)] + public HRESULT GetDwordProperty(WPF_SETTINGS_DWORD_ENUM SettingId, [NativeTypeName("DWORD *")] uint* pdwSetting) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((IWpfSettings*)Unsafe.AsPointer(ref this), SettingId, pdwSetting); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(3)] + public HRESULT GetUlonglongProperty(WPF_SETTINGS_ULONGLONG_ENUM SettingId, [NativeTypeName("ULONGLONG *")] ulong* pSetting) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((IWpfSettings*)Unsafe.AsPointer(ref this), SettingId, pSetting); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(4)] + public HRESULT GetStringProperty(WPF_SETTINGS_STRING_ENUM SettingId, [NativeTypeName("PWSTR")] char* pszSetting, [NativeTypeName("DWORD *")] uint* pcchSetting) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((IWpfSettings*)Unsafe.AsPointer(ref this), SettingId, pszSetting, pcchSetting); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(5)] + public HRESULT GetBoolProperty(WPF_SETTINGS_BOOL_ENUM SettingId, BOOL* pfSetting) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((IWpfSettings*)Unsafe.AsPointer(ref this), SettingId, pfSetting); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [VtblIndex(6)] + public HRESULT GetHandleProperty(WPF_SETTINGS_HANDLE_ENUM SettingId, HANDLE* phSetting) + { + return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((IWpfSettings*)Unsafe.AsPointer(ref this), SettingId, phSetting); + } + + public interface Interface : IWpfReferencedObject.Interface + { + [VtblIndex(2)] + HRESULT GetDwordProperty(WPF_SETTINGS_DWORD_ENUM SettingId, [NativeTypeName("DWORD *")] uint* pdwSetting); + + [VtblIndex(3)] + HRESULT GetUlonglongProperty(WPF_SETTINGS_ULONGLONG_ENUM SettingId, [NativeTypeName("ULONGLONG *")] ulong* pSetting); + + [VtblIndex(4)] + HRESULT GetStringProperty(WPF_SETTINGS_STRING_ENUM SettingId, [NativeTypeName("PWSTR")] char* pszSetting, [NativeTypeName("DWORD *")] uint* pcchSetting); + + [VtblIndex(5)] + HRESULT GetBoolProperty(WPF_SETTINGS_BOOL_ENUM SettingId, BOOL* pfSetting); + + [VtblIndex(6)] + HRESULT GetHandleProperty(WPF_SETTINGS_HANDLE_ENUM SettingId, HANDLE* phSetting); + } + + public partial struct Vtbl + where TSelf : unmanaged, Interface + { + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] AddRef; + + [NativeTypeName("ULONG ()")] + public delegate* unmanaged[MemberFunction] Release; + + [NativeTypeName("HRESULT (WPF_SETTINGS_DWORD_ENUM, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetDwordProperty; + + [NativeTypeName("HRESULT (WPF_SETTINGS_ULONGLONG_ENUM, ULONGLONG *)")] + public delegate* unmanaged[MemberFunction] GetUlonglongProperty; + + [NativeTypeName("HRESULT (WPF_SETTINGS_STRING_ENUM, PWSTR, DWORD *)")] + public delegate* unmanaged[MemberFunction] GetStringProperty; + + [NativeTypeName("HRESULT (WPF_SETTINGS_BOOL_ENUM, BOOL *)")] + public delegate* unmanaged[MemberFunction] GetBoolProperty; + + [NativeTypeName("HRESULT (WPF_SETTINGS_HANDLE_ENUM, HANDLE *)")] + public delegate* unmanaged[MemberFunction] GetHandleProperty; + } +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/PM_INTERFACE_ID_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/PM_INTERFACE_ID_ENUM.cs new file mode 100644 index 0000000000..5118282b62 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/PM_INTERFACE_ID_ENUM.cs @@ -0,0 +1,25 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum PM_INTERFACE_ID_ENUM +{ + /// + PM_LISTENER_CHANNEL_MANAGER_ID = 1, + + /// + PM_HEALTH_AND_IDLE_MONITOR_ID, + + /// + PM_CUSTOM_ACTIONS_ID, + + /// + PM_APPLICATION_PRELOAD_ID, + + /// + PM_IDLE_TIMEOUT_ID, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_INTERFACE_ID_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_INTERFACE_ID_ENUM.cs new file mode 100644 index 0000000000..319c6af0e8 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_INTERFACE_ID_ENUM.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_INTERFACE_ID_ENUM +{ + /// + WPF_CONFIG_API_ID = 1, + + /// + WPF_APPLICATION_INFO_UTIL_ID, + + /// + WPF_SETTINGS_ID, + + /// + WPF_ACTIONS_ID, + + /// + WPF_EXPOSE_PROTOCOL_MANAGER_CUSTOM_INTERFACE_ID, + + /// + WPF_APPLICATION_PRELOAD_INFO_UTIL_ID, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_BOOL_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_BOOL_ENUM.cs new file mode 100644 index 0000000000..d2f5537396 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_BOOL_ENUM.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_SETTINGS_BOOL_ENUM +{ + /// + ENABLED_CENTRAL_BINARY_LOGGING, + + /// + ENABLED_HOSTABLE_WEB_CORE, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_DWORD_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_DWORD_ENUM.cs new file mode 100644 index 0000000000..0ad993c0a3 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_DWORD_ENUM.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_SETTINGS_DWORD_ENUM +{ + /// + PERIODIC_RESTART_REQUESTS = 1, + + /// + PERIODIC_RESTART_TIME, + + /// + IDLE_TIMEOUT, + + /// + MANAGED_PIPELINE_MODE, + + /// + THREAD_AFFINITY_POLICY, + + /// + IDLE_TIMEOUT_ACTION, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_HANDLE_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_HANDLE_ENUM.cs new file mode 100644 index 0000000000..31076169e5 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_HANDLE_ENUM.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_SETTINGS_HANDLE_ENUM +{ + /// + ANONYMOUS_USER_TOKEN, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_STRING_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_STRING_ENUM.cs new file mode 100644 index 0000000000..6a3c8ca27d --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_STRING_ENUM.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_SETTINGS_STRING_ENUM +{ + /// + CLR_VERSION, + + /// + APP_POOL_NAME, + + /// + APP_HOST_FILE_NAME, + + /// + ROOT_WEB_CONFIG_FILE_NAME, + + /// + CLR_CONFIG_FILE_NAME, + + /// + CLR_VERSION_PATH, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_ULONGLONG_ENUM.cs b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_ULONGLONG_ENUM.cs new file mode 100644 index 0000000000..7a57dd5a03 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/WPF_SETTINGS_ULONGLONG_ENUM.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop.Windows; + +/// +public enum WPF_SETTINGS_ULONGLONG_ENUM +{ + /// + PERIODIC_RESTART_VIRTUAL_MEMORY, + + /// + PERIODIC_RESTART_PRIVATE_MEMORY, +} diff --git a/sources/Interop/Windows/Windows/um/wpframework/Windows.cs b/sources/Interop/Windows/Windows/um/wpframework/Windows.cs new file mode 100644 index 0000000000..4acad9f936 --- /dev/null +++ b/sources/Interop/Windows/Windows/um/wpframework/Windows.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/wpframework.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop.Windows; + +public static unsafe partial class Windows +{ + /// + [DllImport("webengine4", ExactSpelling = true)] + public static extern HRESULT LoadManagedRuntime([NativeTypeName("PCWSTR")] char* pwszRuntimeVersion, IUnknown** ppManagedRuntimeHost); + + [NativeTypeName("#define MANAGED_RUNTIME_LOADER_FUNCTION \"LoadManagedRuntime\"")] + public static ReadOnlySpan MANAGED_RUNTIME_LOADER_FUNCTION => "LoadManagedRuntime"u8; + + [NativeTypeName("#define MANAGED_RUNTIME_LOADER_EX_FUNCTION \"LoadManagedRuntimeEx\"")] + public static ReadOnlySpan MANAGED_RUNTIME_LOADER_EX_FUNCTION => "LoadManagedRuntimeEx"u8; +} diff --git a/tests/Interop/Windows/ResolveDllImportTests.cs b/tests/Interop/Windows/ResolveDllImportTests.cs index 8be33240f9..12e8cc6830 100644 --- a/tests/Interop/Windows/ResolveDllImportTests.cs +++ b/tests/Interop/Windows/ResolveDllImportTests.cs @@ -61,6 +61,26 @@ private static void ProcessMethod(MethodInfo method, List unresolved) case "DavUnregisterAuthCallback": case "DxcCreateInstance": case "DxcCreateInstance2": + case "LoadManagedRuntime": + case "PrjAllocateAlignedBuffer": + case "PrjClearNegativePathCache": + case "PrjCompleteCommand": + case "PrjDeleteFile": + case "PrjDoesNameContainWildCards": + case "PrjFileNameCompare": + case "PrjFileNameMatch": + case "PrjFillDirEntryBuffer": + case "PrjFillDirEntryBuffer2": + case "PrjFreeAlignedBuffer": + case "PrjGetOnDiskFileState": + case "PrjGetVirtualizationInstanceInfo": + case "PrjMarkDirectoryAsPlaceholder": + case "PrjStartVirtualizing": + case "PrjStopVirtualizing": + case "PrjUpdateFileIfNeeded": + case "PrjWriteFileData": + case "PrjWritePlaceholderInfo": + case "PrjWritePlaceholderInfo2": case "SRRemoveRestorePoint": case "SRSetRestorePoint": case "SRSetRestorePointA": @@ -69,16 +89,10 @@ private static void ProcessMethod(MethodInfo method, List unresolved) case "X3DAudioInitialize": case "X3DAudioCalculate": { - if (Environment.GetEnvironmentVariable("GITHUB_RUN_ID") is not null) - { - // This isn't good practice, but current CI runs Windows Server and these APIs aren't available - // due to being in a library that isn't present on the Windows Server machines - Assert.Warn($"Warn: {exception.Message}"); - } - else - { - goto default; - } + // This isn't good practice, but current CI runs Windows Server and these APIs aren't available + // due to being in a library that isn't present on the Windows Server machines or requiring an + // optional Windows feature to be installed + Assert.Warn($"Warn: {exception.Message}"); break; } diff --git a/tests/Interop/Windows/Windows/um/ahadmin/AppHostAdminManagerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/AppHostAdminManagerTests.cs new file mode 100644 index 0000000000..be769e7778 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/AppHostAdminManagerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class AppHostAdminManagerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(AppHostAdminManager).GUID, Is.EqualTo(IID_AppHostAdminManager)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManagerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManagerTests.cs new file mode 100644 index 0000000000..2f5e3e76c7 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/AppHostWritableAdminManagerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class AppHostWritableAdminManagerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(AppHostWritableAdminManager).GUID, Is.EqualTo(IID_AppHostWritableAdminManager)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManagerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManagerTests.cs new file mode 100644 index 0000000000..4919ea1b11 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostAdminManagerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostAdminManagerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostAdminManager).GUID, Is.EqualTo(IID_IAppHostAdminManager)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandlerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandlerTests.cs new file mode 100644 index 0000000000..98518bc8f8 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChangeHandlerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostChangeHandlerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostChangeHandler).GUID, Is.EqualTo(IID_IAppHostChangeHandler)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollectionTests.cs new file mode 100644 index 0000000000..435b969a95 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostChildElementCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostChildElementCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostChildElementCollection).GUID, Is.EqualTo(IID_IAppHostChildElementCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchemaTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchemaTests.cs new file mode 100644 index 0000000000..204ee058b6 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostCollectionSchemaTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostCollectionSchemaTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostCollectionSchema).GUID, Is.EqualTo(IID_IAppHostCollectionSchema)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigExceptionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigExceptionTests.cs new file mode 100644 index 0000000000..a7c9e115bc --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigExceptionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConfigExceptionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConfigException).GUID, Is.EqualTo(IID_IAppHostConfigException)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFileTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFileTests.cs new file mode 100644 index 0000000000..4659a868cf --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigFileTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConfigFileTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConfigFile).GUID, Is.EqualTo(IID_IAppHostConfigFile)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollectionTests.cs new file mode 100644 index 0000000000..9e1c139e7d --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConfigLocationCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConfigLocationCollection).GUID, Is.EqualTo(IID_IAppHostConfigLocationCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationTests.cs new file mode 100644 index 0000000000..f152083dd4 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigLocationTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConfigLocationTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConfigLocation).GUID, Is.EqualTo(IID_IAppHostConfigLocation)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManagerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManagerTests.cs new file mode 100644 index 0000000000..b29b9b5293 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConfigManagerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConfigManagerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConfigManager).GUID, Is.EqualTo(IID_IAppHostConfigManager)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollectionTests.cs new file mode 100644 index 0000000000..f117a4e075 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConstantValueCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConstantValueCollection).GUID, Is.EqualTo(IID_IAppHostConstantValueCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueTests.cs new file mode 100644 index 0000000000..32b24d6896 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostConstantValueTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostConstantValueTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostConstantValue).GUID, Is.EqualTo(IID_IAppHostConstantValue)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollectionTests.cs new file mode 100644 index 0000000000..aa50a48124 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostElementCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostElementCollection).GUID, Is.EqualTo(IID_IAppHostElementCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtensionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtensionTests.cs new file mode 100644 index 0000000000..52e4cb36e1 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementExtensionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostElementExtensionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostElementExtension).GUID, Is.EqualTo(IID_IAppHostElementExtension)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollectionTests.cs new file mode 100644 index 0000000000..fd61100621 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostElementSchemaCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostElementSchemaCollection).GUID, Is.EqualTo(IID_IAppHostElementSchemaCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaTests.cs new file mode 100644 index 0000000000..e822ebb5df --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementSchemaTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostElementSchemaTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostElementSchema).GUID, Is.EqualTo(IID_IAppHostElementSchema)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementTests.cs new file mode 100644 index 0000000000..6b26798ac1 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostElementTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostElementTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostElement).GUID, Is.EqualTo(IID_IAppHostElement)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtensionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtensionTests.cs new file mode 100644 index 0000000000..3d53b31651 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMappingExtensionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMappingExtensionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMappingExtension).GUID, Is.EqualTo(IID_IAppHostMappingExtension)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollectionTests.cs new file mode 100644 index 0000000000..64cd9c0ceb --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMethodCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMethodCollection).GUID, Is.EqualTo(IID_IAppHostMethodCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtensionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtensionTests.cs new file mode 100644 index 0000000000..eb9a00c46d --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodExtensionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMethodExtensionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMethodExtension).GUID, Is.EqualTo(IID_IAppHostMethodExtension)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstanceTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstanceTests.cs new file mode 100644 index 0000000000..849e43bb04 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodInstanceTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMethodInstanceTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMethodInstance).GUID, Is.EqualTo(IID_IAppHostMethodInstance)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchemaTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchemaTests.cs new file mode 100644 index 0000000000..ae1fb145ca --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodSchemaTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMethodSchemaTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMethodSchema).GUID, Is.EqualTo(IID_IAppHostMethodSchema)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodTests.cs new file mode 100644 index 0000000000..24fbfeb95a --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostMethodTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostMethodTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostMethod).GUID, Is.EqualTo(IID_IAppHostMethod)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2Tests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2Tests.cs new file mode 100644 index 0000000000..a33f843f6a --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapper2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPathMapper2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPathMapper2).GUID, Is.EqualTo(IID_IAppHostPathMapper2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapperTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapperTests.cs new file mode 100644 index 0000000000..579510df04 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPathMapperTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPathMapperTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPathMapper).GUID, Is.EqualTo(IID_IAppHostPathMapper)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollectionTests.cs new file mode 100644 index 0000000000..7f48cb39a1 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertyCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPropertyCollection).GUID, Is.EqualTo(IID_IAppHostPropertyCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExceptionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExceptionTests.cs new file mode 100644 index 0000000000..f1d9b05053 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExceptionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertyExceptionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPropertyException).GUID, Is.EqualTo(IID_IAppHostPropertyException)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtensionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtensionTests.cs new file mode 100644 index 0000000000..878fdeb730 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyExtensionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertyExtensionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPropertyExtension).GUID, Is.EqualTo(IID_IAppHostPropertyExtension)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollectionTests.cs new file mode 100644 index 0000000000..6ce8c0ce48 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertySchemaCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPropertySchemaCollection).GUID, Is.EqualTo(IID_IAppHostPropertySchemaCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaTests.cs new file mode 100644 index 0000000000..82eb9fff71 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertySchemaTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertySchemaTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostPropertySchema).GUID, Is.EqualTo(IID_IAppHostPropertySchema)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyTests.cs new file mode 100644 index 0000000000..c3eea95395 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostPropertyTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostPropertyTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostProperty).GUID, Is.EqualTo(IID_IAppHostProperty)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollectionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollectionTests.cs new file mode 100644 index 0000000000..149100571c --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionCollectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostSectionDefinitionCollectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostSectionDefinitionCollection).GUID, Is.EqualTo(IID_IAppHostSectionDefinitionCollection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionTests.cs new file mode 100644 index 0000000000..a627ab5214 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionDefinitionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostSectionDefinitionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostSectionDefinition).GUID, Is.EqualTo(IID_IAppHostSectionDefinition)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroupTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroupTests.cs new file mode 100644 index 0000000000..54f7039465 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostSectionGroupTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostSectionGroupTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostSectionGroup).GUID, Is.EqualTo(IID_IAppHostSectionGroup)); + } +} diff --git a/tests/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManagerTests.cs b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManagerTests.cs new file mode 100644 index 0000000000..fc8cab8b71 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/ahadmin/IAppHostWritableAdminManagerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/ahadmin.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAppHostWritableAdminManagerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAppHostWritableAdminManager).GUID, Is.EqualTo(IID_IAppHostWritableAdminManager)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IAuthenticationProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IAuthenticationProviderTests.cs new file mode 100644 index 0000000000..83170364eb --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IAuthenticationProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IAuthenticationProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IAuthenticationProvider).GUID, Is.EqualTo(IID_IAuthenticationProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/ICacheProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/ICacheProviderTests.cs new file mode 100644 index 0000000000..d1d61895ed --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/ICacheProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class ICacheProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(ICacheProvider).GUID, Is.EqualTo(IID_ICacheProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/ICustomNotificationProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/ICustomNotificationProviderTests.cs new file mode 100644 index 0000000000..61c421e746 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/ICustomNotificationProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class ICustomNotificationProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(ICustomNotificationProvider).GUID, Is.EqualTo(IID_ICustomNotificationProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainerTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainerTests.cs new file mode 100644 index 0000000000..d3c8df8ac3 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IDispensedHttpModuleContextContainerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IDispensedHttpModuleContextContainerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDispensedHttpModuleContextContainer).GUID, Is.EqualTo(IID_IDispensedHttpModuleContextContainer)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2Tests.cs new file mode 100644 index 0000000000..2a3f1d63df --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProvider2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalApplicationPreloadProvider2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalApplicationPreloadProvider2).GUID, Is.EqualTo(IID_IGlobalApplicationPreloadProvider2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProviderTests.cs new file mode 100644 index 0000000000..643f6f307e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalApplicationPreloadProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalApplicationPreloadProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalApplicationPreloadProvider).GUID, Is.EqualTo(IID_IGlobalApplicationPreloadProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProviderTests.cs new file mode 100644 index 0000000000..d84d528670 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalConfigurationChangeProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalConfigurationChangeProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalConfigurationChangeProvider).GUID, Is.EqualTo(IID_IGlobalConfigurationChangeProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProviderTests.cs new file mode 100644 index 0000000000..6dd799cc87 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalFileChangeProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalFileChangeProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalFileChangeProvider).GUID, Is.EqualTo(IID_IGlobalFileChangeProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProviderTests.cs new file mode 100644 index 0000000000..a5f6b10bff --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalRSCAQueryProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalRSCAQueryProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalRSCAQueryProvider).GUID, Is.EqualTo(IID_IGlobalRSCAQueryProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProviderTests.cs new file mode 100644 index 0000000000..f253f4260e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalStopListeningProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalStopListeningProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalStopListeningProvider).GUID, Is.EqualTo(IID_IGlobalStopListeningProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallbackTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallbackTests.cs new file mode 100644 index 0000000000..7d8e2648ed --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalSuspendProcessCallbackTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalSuspendProcessCallbackTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalSuspendProcessCallback).GUID, Is.EqualTo(IID_IGlobalSuspendProcessCallback)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProviderTests.cs new file mode 100644 index 0000000000..98ed07d97a --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalThreadCleanupProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalThreadCleanupProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalThreadCleanupProvider).GUID, Is.EqualTo(IID_IGlobalThreadCleanupProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProviderTests.cs new file mode 100644 index 0000000000..e452583143 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IGlobalTraceEventProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IGlobalTraceEventProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IGlobalTraceEventProvider).GUID, Is.EqualTo(IID_IGlobalTraceEventProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpApplication2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplication2Tests.cs new file mode 100644 index 0000000000..60054a1dbc --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplication2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpApplication2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpApplication2).GUID, Is.EqualTo(IID_IHttpApplication2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationProviderTests.cs new file mode 100644 index 0000000000..687ecc3fff --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpApplicationProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpApplicationProvider).GUID, Is.EqualTo(IID_IHttpApplicationProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProviderTests.cs new file mode 100644 index 0000000000..d4c633c4fc --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationResolveModulesProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpApplicationResolveModulesProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpApplicationResolveModulesProvider).GUID, Is.EqualTo(IID_IHttpApplicationResolveModulesProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationTests.cs new file mode 100644 index 0000000000..cf6d16c8d8 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpApplicationTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpApplicationTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpApplication).GUID, Is.EqualTo(IID_IHttpApplication)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheKeyTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheKeyTests.cs new file mode 100644 index 0000000000..a295bbc718 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheKeyTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCacheKeyTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCacheKey).GUID, Is.EqualTo(IID_IHttpCacheKey)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2Tests.cs new file mode 100644 index 0000000000..52a5234f83 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicy2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCachePolicy2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCachePolicy2).GUID, Is.EqualTo(IID_IHttpCachePolicy2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicyTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicyTests.cs new file mode 100644 index 0000000000..a256d0b830 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCachePolicyTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCachePolicyTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCachePolicy).GUID, Is.EqualTo(IID_IHttpCachePolicy)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificDataTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificDataTests.cs new file mode 100644 index 0000000000..e153fd7edb --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCacheSpecificDataTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCacheSpecificDataTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCacheSpecificData).GUID, Is.EqualTo(IID_IHttpCacheSpecificData)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2Tests.cs new file mode 100644 index 0000000000..e08450d114 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfo2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCompletionInfo2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCompletionInfo2).GUID, Is.EqualTo(IID_IHttpCompletionInfo2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfoTests.cs new file mode 100644 index 0000000000..76243dbb3e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpCompletionInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpCompletionInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpCompletionInfo).GUID, Is.EqualTo(IID_IHttpCompletionInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainerTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainerTests.cs new file mode 100644 index 0000000000..fa04114282 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionModuleContextContainerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpConnectionModuleContextContainerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpConnectionModuleContextContainer).GUID, Is.EqualTo(IID_IHttpConnectionModuleContextContainer)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContextTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContextTests.cs new file mode 100644 index 0000000000..0059c4b448 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionStoredContextTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpConnectionStoredContextTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpConnectionStoredContext).GUID, Is.EqualTo(IID_IHttpConnectionStoredContext)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionTests.cs new file mode 100644 index 0000000000..5f654ea1c1 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpConnectionTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpConnectionTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpConnection).GUID, Is.EqualTo(IID_IHttpConnection)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpContext2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext2Tests.cs new file mode 100644 index 0000000000..64328b1a8e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpContext2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpContext2).GUID, Is.EqualTo(IID_IHttpContext2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpContext3Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext3Tests.cs new file mode 100644 index 0000000000..a773e11ccb --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext3Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpContext3Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpContext3).GUID, Is.EqualTo(IID_IHttpContext3)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpContext4Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext4Tests.cs new file mode 100644 index 0000000000..5d51f82cd2 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpContext4Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpContext4Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpContext4).GUID, Is.EqualTo(IID_IHttpContext4)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpContextTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpContextTests.cs new file mode 100644 index 0000000000..b648666fdc --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpContextTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpContextTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpContext).GUID, Is.EqualTo(IID_IHttpContext)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpEventProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpEventProviderTests.cs new file mode 100644 index 0000000000..0713d9f770 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpEventProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpEventProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpEventProvider).GUID, Is.EqualTo(IID_IHttpEventProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpFileInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpFileInfoTests.cs new file mode 100644 index 0000000000..faa4d0ce4c --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpFileInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpFileInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpFileInfo).GUID, Is.EqualTo(IID_IHttpFileInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpFileMonitorTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpFileMonitorTests.cs new file mode 100644 index 0000000000..a668d16f5f --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpFileMonitorTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpFileMonitorTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpFileMonitor).GUID, Is.EqualTo(IID_IHttpFileMonitor)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainerTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainerTests.cs new file mode 100644 index 0000000000..d5b7d09a9d --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleContextContainerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpModuleContextContainerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpModuleContextContainer).GUID, Is.EqualTo(IID_IHttpModuleContextContainer)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleFactoryTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleFactoryTests.cs new file mode 100644 index 0000000000..4268f077d3 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleFactoryTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpModuleFactoryTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpModuleFactory).GUID, Is.EqualTo(IID_IHttpModuleFactory)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2Tests.cs new file mode 100644 index 0000000000..811a7b18b9 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfo2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpModuleRegistrationInfo2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpModuleRegistrationInfo2).GUID, Is.EqualTo(IID_IHttpModuleRegistrationInfo2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfoTests.cs new file mode 100644 index 0000000000..973b0d861b --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpModuleRegistrationInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpModuleRegistrationInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpModuleRegistrationInfo).GUID, Is.EqualTo(IID_IHttpModuleRegistrationInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfoTests.cs new file mode 100644 index 0000000000..b9fdb1da34 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpPerfCounterInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpPerfCounterInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpPerfCounterInfo).GUID, Is.EqualTo(IID_IHttpPerfCounterInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest2Tests.cs new file mode 100644 index 0000000000..76e5b0ec7a --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpRequest2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpRequest2).GUID, Is.EqualTo(IID_IHttpRequest2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest3Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest3Tests.cs new file mode 100644 index 0000000000..f4ead22680 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest3Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpRequest3Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpRequest3).GUID, Is.EqualTo(IID_IHttpRequest3)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest4Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest4Tests.cs new file mode 100644 index 0000000000..f2a7f79b58 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequest4Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpRequest4Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpRequest4).GUID, Is.EqualTo(IID_IHttpRequest4)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpRequestTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequestTests.cs new file mode 100644 index 0000000000..7bf67d3c51 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpRequestTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpRequestTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpRequest).GUID, Is.EqualTo(IID_IHttpRequest)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse2Tests.cs new file mode 100644 index 0000000000..bb330c8423 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpResponse2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpResponse2).GUID, Is.EqualTo(IID_IHttpResponse2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse3Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse3Tests.cs new file mode 100644 index 0000000000..6f77e38e92 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse3Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpResponse3Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpResponse3).GUID, Is.EqualTo(IID_IHttpResponse3)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse4Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse4Tests.cs new file mode 100644 index 0000000000..80bc3937ce --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponse4Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpResponse4Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpResponse4).GUID, Is.EqualTo(IID_IHttpResponse4)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpResponseTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponseTests.cs new file mode 100644 index 0000000000..9bdc5907a2 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpResponseTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpResponseTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpResponse).GUID, Is.EqualTo(IID_IHttpResponse)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpServer2Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpServer2Tests.cs new file mode 100644 index 0000000000..25142f5740 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpServer2Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpServer2Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpServer2).GUID, Is.EqualTo(IID_IHttpServer2)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpServer3Tests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpServer3Tests.cs new file mode 100644 index 0000000000..c7b428aa29 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpServer3Tests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpServer3Tests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpServer3).GUID, Is.EqualTo(IID_IHttpServer3)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpServerTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpServerTests.cs new file mode 100644 index 0000000000..cadb6d1d85 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpServerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpServerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpServer).GUID, Is.EqualTo(IID_IHttpServer)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpSiteTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpSiteTests.cs new file mode 100644 index 0000000000..1adbec2c30 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpSiteTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpSiteTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpSite).GUID, Is.EqualTo(IID_IHttpSite)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpStoredContextTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpStoredContextTests.cs new file mode 100644 index 0000000000..2eae7cd789 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpStoredContextTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpStoredContextTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpStoredContext).GUID, Is.EqualTo(IID_IHttpStoredContext)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpTokenEntryTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpTokenEntryTests.cs new file mode 100644 index 0000000000..0f1526b014 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpTokenEntryTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpTokenEntryTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpTokenEntry).GUID, Is.EqualTo(IID_IHttpTokenEntry)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpTraceContextTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpTraceContextTests.cs new file mode 100644 index 0000000000..e20906e563 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpTraceContextTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpTraceContextTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpTraceContext).GUID, Is.EqualTo(IID_IHttpTraceContext)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpUrlInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpUrlInfoTests.cs new file mode 100644 index 0000000000..04d1dbd37e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpUrlInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpUrlInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpUrlInfo).GUID, Is.EqualTo(IID_IHttpUrlInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IHttpUserTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IHttpUserTests.cs new file mode 100644 index 0000000000..ad55e1d7ef --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IHttpUserTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IHttpUserTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IHttpUser).GUID, Is.EqualTo(IID_IHttpUser)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IMapHandlerProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IMapHandlerProviderTests.cs new file mode 100644 index 0000000000..8e6c7f49b2 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IMapHandlerProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IMapHandlerProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMapHandlerProvider).GUID, Is.EqualTo(IID_IMapHandlerProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IMapPathProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IMapPathProviderTests.cs new file mode 100644 index 0000000000..7948fd89c0 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IMapPathProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IMapPathProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMapPathProvider).GUID, Is.EqualTo(IID_IMapPathProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IMetadataInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IMetadataInfoTests.cs new file mode 100644 index 0000000000..70b162112b --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IMetadataInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IMetadataInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMetadataInfo).GUID, Is.EqualTo(IID_IMetadataInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IModuleAllocatorTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IModuleAllocatorTests.cs new file mode 100644 index 0000000000..a1de94d6dc --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IModuleAllocatorTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IModuleAllocatorTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IModuleAllocator).GUID, Is.EqualTo(IID_IModuleAllocator)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/INamedContextContainerTests.cs b/tests/Interop/Windows/Windows/um/httpserv/INamedContextContainerTests.cs new file mode 100644 index 0000000000..f6507dc15c --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/INamedContextContainerTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class INamedContextContainerTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(INamedContextContainer).GUID, Is.EqualTo(IID_INamedContextContainer)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProviderTests.cs new file mode 100644 index 0000000000..8df0bcdb9e --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IPreBeginRequestProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IPreBeginRequestProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IPreBeginRequestProvider).GUID, Is.EqualTo(IID_IPreBeginRequestProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IReadEntityProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IReadEntityProviderTests.cs new file mode 100644 index 0000000000..bdae005e5b --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IReadEntityProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IReadEntityProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IReadEntityProvider).GUID, Is.EqualTo(IID_IReadEntityProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfoTests.cs new file mode 100644 index 0000000000..6b53a91c3d --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IReferencedMetadataInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IReferencedMetadataInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IReferencedMetadataInfo).GUID, Is.EqualTo(IID_IReferencedMetadataInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/IScriptMapInfoTests.cs b/tests/Interop/Windows/Windows/um/httpserv/IScriptMapInfoTests.cs new file mode 100644 index 0000000000..8e661964d2 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/IScriptMapInfoTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class IScriptMapInfoTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IScriptMapInfo).GUID, Is.EqualTo(IID_IScriptMapInfo)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httpserv/ISendResponseProviderTests.cs b/tests/Interop/Windows/Windows/um/httpserv/ISendResponseProviderTests.cs new file mode 100644 index 0000000000..8d598b8110 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httpserv/ISendResponseProviderTests.cs @@ -0,0 +1,22 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httpserv.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows.IID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the struct. +public static unsafe partial class ISendResponseProviderTests +{ + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(ISendResponseProvider).GUID, Is.EqualTo(IID_ISendResponseProvider)); + } +} diff --git a/tests/Interop/Windows/Windows/um/httptrace/GUIDTests.cs b/tests/Interop/Windows/Windows/um/httptrace/GUIDTests.cs new file mode 100644 index 0000000000..321ecaf386 --- /dev/null +++ b/tests/Interop/Windows/Windows/um/httptrace/GUIDTests.cs @@ -0,0 +1,63 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/httptrace.h in the Windows SDK for Windows 10.0.26100.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using static TerraFX.Interop.Windows.GUID; + +namespace TerraFX.Interop.Windows.UnitTests; + +/// Provides validation of the class. +public static partial class GUIDTests +{ + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_ALL_TRACE_PROVIDERSTest() + { + Assert.That(GUID_IIS_ALL_TRACE_PROVIDERS, Is.EqualTo(new Guid(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_WWW_SERVER_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_WWW_SERVER_TRACE_PROVIDER, Is.EqualTo(new Guid(0x3a2a4e84, 0x4c21, 0x4981, 0xae, 0x10, 0x3f, 0xda, 0x0d, 0x9b, 0x0f, 0x83))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_WWW_SERVER_V2_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_WWW_SERVER_V2_TRACE_PROVIDER, Is.EqualTo(new Guid(0xde4649c9, 0x15e8, 0x4fea, 0x9d, 0x85, 0x1c, 0xdd, 0xa5, 0x20, 0xc3, 0x34))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_ASPNET_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_ASPNET_TRACE_PROVIDER, Is.EqualTo(new Guid(0xAFF081FE, 0x0247, 0x4275, 0x9C, 0x4E, 0x02, 0x1F, 0x3D, 0xC1, 0xDA, 0x35))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_ASP_TRACE_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_ASP_TRACE_TRACE_PROVIDER, Is.EqualTo(new Guid(0x06b94d9a, 0xb15e, 0x456e, 0xa4, 0xef, 0x37, 0xc9, 0x84, 0xa2, 0xcb, 0x4b))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_WWW_GLOBAL_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_WWW_GLOBAL_TRACE_PROVIDER, Is.EqualTo(new Guid(0xd55d3bc9, 0xcba9, 0x44df, 0x82, 0x7e, 0x13, 0x2d, 0x3a, 0x45, 0x96, 0xc2))); + } + + /// Validates that the value of the property is correct. + [Test] + public static void GUID_IIS_ISAPI_TRACE_PROVIDERTest() + { + Assert.That(GUID_IIS_ISAPI_TRACE_PROVIDER, Is.EqualTo(new Guid(0xa1c2040e, 0x8840, 0x4c31, 0xba, 0x11, 0x98, 0x71, 0x03, 0x1a, 0x19, 0xea))); + } +}