LPPOINT lppt // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΡΡΠΈ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hDrop - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΡΡΡΡ ΡΠ°ΠΉΠ»Ρ.
lppt - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ POINT , ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΠΌΡΡΠΈ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ»Π° ΠΎΡΠΏΡΡΠ΅Π½Π° Π»Π΅Π²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡΡΠΈ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΊΠ½Π°, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM _ DROPFILES .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
DragQueryFile, POINT , WM_DROPFILES.
FindExecutable
Π€ΡΠ½ΠΊΡΠΈΡ FindExecutable Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ (.ΠΠ₯Π) ΡΠ°ΠΉΠ»Π°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ.
HINSTANCE FindExecutable (
LPCTSTR lpFile , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π°
LPCTSTR lpDirectory , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΡ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ ΠΏΠΎ
// ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
LPTSTR lpResult // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
// Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ .ΠΠ₯Π ΡΠ°ΠΉΠ»Π°
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lpFile - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ ΡΡΡΠΎΠΊΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ.
lpDirectory - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ ΡΡΡΠΎΠΊΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
lpResult - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ°ΠΉΠ»Π°. ΠΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ ΡΡΡΠΎΠΊΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ lpFile .
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ 32. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ 32. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
0
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².
31
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ².
ERROR_FILE_NOT_FOUND
Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
ERROR_PATH_NOT_FOUND
Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΡΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
ERROR_BAD_FORMAT
ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ .ΠΠ₯Π ΡΠ°ΠΉΠ»Π° (Π½Π΅ Win32 .EXE ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»)
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ lpResult ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ DDE, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠΈ DDE-Π΄ΠΈΠ°Π»ΠΎΠ³Π°.
Π‘ΠΌ . ΡΠ°ΠΊΠΆΠ΅
ShellExecute .
ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΠΈΠ³ΡΡΡ
FrameRect
Π€ΡΠ½ΠΊΡΠΈΡ FrameRect ΡΠΈΡΡΠ΅Ρ Π³ΡΠ°Π½ΠΈΡΡ Π²ΠΎΠΊΡΡΠ³ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΈΡΡΡ. Π¨ΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π½Ρ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅.
int FrameRect (
HDC hDC , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
CONST RECT *lprc , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
HBRUSH hbr // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΈΡΡΠΈ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hDC - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π° Π³ΡΠ°Π½ΠΈΡΠ°.
lprc - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° RECT , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»ΠΎΠ² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
hbr - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΈΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°Π½ΠΈΡΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ TRUE.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ FALSE. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΈΡΡΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ hbr , Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ CreateHatchBrush, CreatePatternBrush ΠΈΠ»ΠΈ CreateSolidBrush , ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ GetStockObject .
ΠΡΠ»ΠΈ ΡΠ»Π΅Π½ bottom ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° RECT ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ ΡΠ»Π΅Π½Ρ top , ΠΈΠ»ΠΈ ΡΠ»Π΅Π½ right ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ ΡΠ»Π΅Π½Ρ left , ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΠΈΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, GetStockObject, RECT .
ΠΠ»Π°ΡΡ ΠΎΠΊΠ½Π°
GetClassName
Π€ΡΠ½ΠΊΡΠΈΡ GetClassName ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
int GetClassName (
HWND hWnd , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°
LPTSTR lpClassName , // Π°Π΄ΡΠ΅Ρ Π±ΡΡΠ΅ΡΠ° Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°
int nMaxCount // ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ°, Π² ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hWnd - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ ΠΈ, Π½Π΅ΡΠ²Π½ΠΎ, ΠΊΠ»Π°ΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ.
lpClassName - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π±ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ°.
nMaxCount - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ lpClassName , Π² ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ . Π‘ΡΡΠΎΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΡΠ΅ΠΊΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π΅Π΅ Π΄Π»ΠΈΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΡΡΠ΅ΡΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² Π±ΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
FindWindow, GetClassInfo, GetClassLong, GetClassWord .
SetClassWord
Π€ΡΠ½ΠΊΡΠΈΡ SetClassWord Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ 16-Π±ΠΈΡΠ½ΠΎΠ΅ ( word ) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
WORD SetClassWord (
HWND hWnd , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°
int nIndex , // ΠΈΠ½Π΄Π΅ΠΊΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
WORD wNewWord // Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hWnd - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ, ΠΈ, Π½Π΅ΡΠ²Π½ΠΎ, ΠΊΠ»Π°ΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠΊΠ½ΠΎ.
nIndex - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΎΡ Π½ΡΠ»Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π±Π°ΠΉΡΠ°Ρ . ΠΠ΅ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ Π½ΡΠ»Ρ Π΄ΠΎ ΡΠΈΡΠ»Π° Π±Π°ΠΉΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΈΠ½ΡΡ Π΄Π²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π»ΠΈ Π΄Π΅ΡΡΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°ΠΉΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΎΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΏΡΡΠΎΠ³ΠΎ 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
wNewWord - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠΉΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π½Π° cbClsExtra ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° WNDCLASS , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ RegisterClass .
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ GCW _ Π² Win 32 API ΡΡΡΠ°ΡΠ΅Π»ΠΈ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ SetClassLong Π΄Π»Ρ ΡΡΡΠ½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ GCW _ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetClassWord .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetClassLong, GetClassWord, RegisterClass, SetClassLong, WNDCLASS .
UnregisterClass
Π€ΡΠ½ΠΊΡΠΈΡ UnregisterClass ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠ½Π°, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ ΠΏΠ°ΠΌΡΡΡ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΡ.
BOOL UnregisterClass (
LPCTSTR lpClassName , // Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ°
HINSTANCE hInstance // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lpClassName - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠΉ Π°ΡΠΎΠΌ. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ Π°ΡΠΎΠΌΠΎΠΌ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ Π°ΡΠΎΠΌΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ GlobalAddAtom . ΠΡΠΎΠΌ, 16-Π±ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ΅Π½ΡΡΠ΅Π΅ 0 xC 000, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ lpClassName ; ΡΡΠ°ΡΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ.
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ lpClassName ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ, ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π°. ΠΡΠΎ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ RegisterClass . Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π°.
hInstance - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ·Π΄Π°Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ Ρ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π·ΡΡΡΠΈΡΡ Π²ΡΠ΅ ΠΎΠΊΠ½Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ.