BOOL ServerSupportFunction (DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );
Значення, яке повертається
Ненульовий, у разі успіху, в іншому випадку 0.
Параметри
dwHSERRequest
Значення розширення HTTP-сервер. Перегляньте зауваження розділі список підтримуваних значень.
lpvBuffer
Під час використання з HSE_REQ_SEND_RESPONSE_HEADER, це вказує на null припинено Факультативний стану рядок (наприклад, "401 доступ доступі»). Якщо цей буфер null, за промовчанням відповідь "200 ОК" буде надіслано на цю функцію. Під час використання з HSE_REQ_DONE_WITH_SESSION, це вказує на DWORD із зазначенням код стану запиту.
lpdwSize
Під час використання з HSE_REQ_SEND_RESPONSE_HEADER, це вказує на розмір буфера lpdwDataType.
lpdwDataType
Під час використання з HSE_REQ_SEND_RESPONSE_HEADER, це нульовим закінченням, вказуючи на додаткові заголовки або дані, щоб бути включені і послав з верхнього колонтитула. Якщо це значення NULL, заголовку буде припинено на пару "\r\n".
Приміткаnbsp; Загальні функції повинна мати значення dwHSERequest перевищує HSE_REQ_E&ND_RESERVED. Значення до HSE_REQ_END_RESERVED зарезервовані для обов'язкового ServerSupportFunctions і не повинна використовуватися.
Зауваження
Цей член функцію, щоб надати ISA деякі функції загального призначення, а також функції, які є специфічними для впровадження HTTP-сервер.
HTTP-сервер розширення значення dwHSERRequest може бути однією з таких:
HSE_REQ_SEND_URL_REDIRECT_RESP
Відсилає на 302 ( URL Redirec t) повідомлення клієнта. Ні подальшої обробки необхідно після дзвінка. Ця операція схожа на визначення "URI: lt;URL-адреса > "у заголовку сценарію CGI. Змінна lpvBuffer повинен вказувати значення null припинено URL рядок. Змінна lpdwSize повинен мати розмір lpvBuffer. Змінна lpdwDataType ігнорується.
HSE_REQ_SEND_URL
Надсилання даних, указаних URL-адресу, щоб клієнт, як, якщо клієнт просив, що URL. На Null припинено URL-адресу вказав на lpvBuffer має бути на сервері а не потрібно вказати дані про протокол (тобто повинна починатись з на '/ '). Ні подальшої обробки необхідна після цього виклику. Змінна lpdwSize вказує на DWORD проведення розмір lpvBuffer. Змінна lpdwDataType ігнорується.
HSE_REQ_SEND_RESPONSE_HEADER
Надсилання повний HTTP сервер відповідь заголовок включаючи статус, Версія сервера, повідомлення час і MIME версії. Розширення ISA або сервера слід додати інші заголовків HTTP в кінці, наприклад, тип вмісту, контент-довжина і так далі, після чого додаткові "\r\n".
HSE_REQ_DONE_WITH_SESSION
Якщо розширення ISA або сервер хоче провести на сесії, оскільки він розширив вимог до обробки, він повинен дізнатися сервер, коли закінчив сесії, так що сервер може закрити його і безкоштовні подібні структури. Змінні lpvBuffer, lpdwSizeі lpdwDataType всі ігноруються.
HSE_REQ_END_RESERVED
Функції, що вище, ніж це значення є конкретний сервер і доступний не на всіх веб-серверів, які підтримують ISAPI.
HSE_REQ_MAP_URL_TO_PATH
LpvBuffer параметр — це вказівник на буфер, який містить логічний контур на запис та фізичні шлях на виході. LpdwSize параметр є вказівник на DWORD , яке містить розмір буфера в lpvBuffer пройшов на запис, і кількість байтів, поміщені в буфер на виході. LpdwDataType параметра ігнорується). Microsoft конкретних розширення.
HSE_REQ_GET_SSPI_INFO
LpvBuffer записується дескриптор контексту і * lpdwDataType записується обробник облікових даних. Дескриптор контексту визначає тип вказівника або ідентифікатор типу. Обробник облікових даних визначає автентифікації та авторизації.
HSE_REQ_TRANSMIT_FILE
Див TransmitFile для більш простий спосіб передачі файлу до до замовника.
Примітка Сервер не забезпечує великих буферів є досить перед заповнення ручками і lpdwSize не оновлюється, щоб відображати кількість даних, скопійований в буфер lpvBuffer . Оскільки ці є фіксований розмір структури, передбачається покажчиків, що пройшов у вказівники структуру і повинен бути принаймні як запит структур.
Огляд CHttpServerContext |nbsp; Члени класу | Ієрархічна діаграма
Дивіться також
CHttpFilterContext::ServerSupportFunction, CHttpServerContext::TransmitFile