Поделиться через


Функция GetWindowLongPtrW (winuser.h)

Извлекает сведения об указанном окне. Функция также извлекает значение с указанным смещением в дополнительную память окна.

Примечание Чтобы написать код, совместимый как с 32-разрядной, так и с 64-разрядной версиями Windows, используйте GetWindowLongPtr. При компиляции для 32-разрядной версии Windows GetWindowLongPtr определяется как вызов функции GetWindowLong .
 

Синтаксис

LONG_PTR GetWindowLongPtrW(
  [in] HWND hWnd,
  [in] int  nIndex
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор окна и, косвенно, класса, которому принадлежит окно.

[in] nIndex

Тип: int

Отсчитываемое от нуля смещение извлекаемого значения. Допустимые значения находятся в диапазоне от нуля до количества байтов дополнительной памяти окна, за вычетом размера LONG_PTR. Чтобы получить любое другое значение, укажите одно из следующих значений.

Значение Значение
GWL_EXSTYLE
–20
Извлекает расширенные стили окна.
GWLP_HINSTANCE
–6
Извлекает дескриптор экземпляра приложения.
GWLP_HWNDPARENT
–8
Извлекает дескриптор родительского окна, если он есть.
GWLP_ID
-12
Извлекает идентификатор окна.
GWL_STYLE
-16
Извлекает стили окна.
GWLP_USERDATA
-21
Извлекает пользовательские данные, связанные с окном. Эти данные предназначены для использования приложением, создающим окно. Его значение изначально равно нулю.
GWLP_WNDPROC
–4
Извлекает указатель на процедуру окна или дескриптор, представляющий указатель на процедуру окна. Для вызова процедуры окна необходимо использовать функцию CallWindowProc .
 

Следующие значения также доступны, если параметр hWnd определяет диалоговое окно.

Значение Значение
DWLP_DLGPROC
DWLP_MSGRESULT + sizeof(LRESULT)
Извлекает указатель на процедуру диалогового окна или дескриптор, представляющий указатель на процедуру диалогового окна. Для вызова процедуры диалогового окна необходимо использовать функцию CallWindowProc .
DWLP_MSGRESULT
0
Извлекает возвращаемое значение сообщения, обработанного в процедуре диалогового окна.
DWLP_USER
DWLP_DLGPROC + sizeof(DLGPROC)
Извлекает дополнительную информацию, закрытую для приложения, например дескрипторы или указатели.

Возвращаемое значение

Тип: LONG_PTR

Если функция выполняется успешно, возвращается запрошенное значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Если Методы SetWindowLong или SetWindowLongPtr не были вызваны ранее, GetWindowLongPtr возвращает ноль для значений в дополнительном окне или памяти класса.

Комментарии

Зарезервируйте дополнительную память окна, указав ненулевое значение в элементе cbWndExtra структуры WNDCLASSEX, используемой с функцией RegisterClassEx .

Примечание

Заголовок winuser.h определяет GetWindowLongPtr как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-windowclass-l1-1-0 (появилось в Windows 8)

См. также раздел

CallWindowProc

Основные понятия

Справочные материалы

RegisterClassEx

Setparent

SetWindowLongPtr

WNDCLASSEX

Классы окон