рдкрд░рд┐рдЪрдп
рдЯреЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдЖрдпрд╛ рдерд╛
рдкрд░рдорд╛рдгреБрдУрдВ рдХрд╛
рджреБрд░реБрдкрдпреЛрдЧ рдФрд░ рд╡реАрд╕реАрдПрд▓ рдореЗрдВ рдорд╛рдпрд╛рд╡реА рдмрдЧ ред рд╡рд┐рдЪрд╛рд░ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдареА, рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рдЕрдкрдиреЗ рджрдо рдкрд░ рдЗрд╕реЗ рдкрд╛рд░ рдХрд┐рдпрд╛, рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╡реАрд╕реАрдПрд▓ рдмрдЧ рд╣реИред рдбреЗрд▓реНрдлреА 7 рдкрд░ рд╡рд┐рдХрд╛рд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрдЧ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдг 7 рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
рд╢реНрд░реАрд╢реВрд░ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рддрдерд╛рдХрдерд┐рдд рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдбреЗрд▓реНрдлреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдкрд░рдорд╛рдгреБрдУрдВ рдХреЛ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкрд░рдорд╛рдгреБ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрднрд┐рднреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ "рдмрд▓рдкреВрд░реНрд╡рдХ рдорд╛рд░" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ, рдХрдИ рдмрд╛рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ:
рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг
рдПрдХ рдЕрдиреНрдп рд╢рд┐рдХрд╛рдпрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд▓рд╛ "рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░", рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдкрд░рдорд╛рдгреБрдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрдВрдЯреНрд░реЛрд▓рдСрдлрд╝реНрд╕ <рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЖрдИрдбреА> рдХреЗ рддрддреНрд╡реЛрдВ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИред рдпреЗ рддрддреНрд╡ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ (рдФрд░ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ), рдФрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗрдВред
рдХрдВрдЯреНрд░реЛрд▓рдкреЗрдЯрд╛рд╕ рдореЗрдВ InitControls рд╕реЗ рдХреЛрдб рдХреЗ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
WindowAtomString := Format('Delphi%.8X',[GetCurrentProcessID]); WindowAtom := GlobalAddAtom(PChar(WindowAtomStrinjg)); ControlAtomString := Format('ControlOfs%.8X%.8X', [HInstance, GetCurrentThreadID]); ControlAtom := GlobalAddAtom(PChar(ControlAtomString)); RM_GetObjectInstance := RegisterWindowMessage(PChar(ControlAtomString));
рдмрд╣реБрдд рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдПрдХ рдкрд░рдорд╛рдгреБ рднреА рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкрд░рдорд╛рдгреБ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ RegisterWindowsMessage
MSDN рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдЕрдкрдВрдЬреАрдХреГрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрдИ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХреБрдЫ рд╕рдВрджреЗрд╢ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
RegisterWindowMessage рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рджреЛ рд╕рд╣рдпреЛрдЧреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рд╣реА рд╕рдВрджреЗрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рди рд╕рдВрджреЗрд╢ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рд╕рдВрджреЗрд╢ рдкрдВрдЬреАрдХреГрдд рд░рд╣рддрд╛ рд╣реИ ред
рдпрд╣ рдЧрдВрднреАрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИред рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рдорд╛рдгреБ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ - рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╡рд╣ рдпрд╣рд╛рдВ рд╢рдХреНрддрд┐рд╣реАрди рд╣реИред рдЪреВрдБрдХрд┐ рдкрд░рдорд╛рдгреБ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 16 рдмрд┐рдЯ рдпреБрдЧ рдореЗрдВ рдЬрдбрд╝реЗрдВ рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдПрдХ рд╕реАрдорд╛ рд▓рдЧрд╛рддреА рд╣реИ, рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рдмрдЧ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╕реЗ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреЛ рдХреНрд░рдо рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдбреЗрд▓реНрдлреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдкрд░рдорд╛рдгреБ рддрд╛рд▓рд┐рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП "рд╕рд╛рдорд╛рдиреНрдп рд╢реБрд░реБрдЖрдд-рд╕рд╣реА рдкреВрд░рд╛ рд╣реЛрдиреЗ" рдХреЗ 20 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: 1

рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдкрд░рдорд╛рдгреБ рд╡реЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ 20 рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рдмрдиреЗ рд░рд╣реЗред
рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдгрдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯрдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░,
рдвреЗрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣рд╕рдорд╛рдзрд╛рди рд╡рд┐рдзрд┐
рдЪреВрдВрдХрд┐ рдкрд░рдорд╛рдгреБ рдХреЛ рдкреЛрд╕реНрдЯ-рдлреИрдХреНрдЯрдо рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд░реЛрдХрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рдПрдХ IAT рд╣реБрдХ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛, рдЬреЛ RegisterWindowMessageA рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ ControlOfs рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ <рдХреБрдЫ рд╡рд╣рд╛рдВ> рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдЕрдиреНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдмрдЬрд╛рдп рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЙрд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдерд╛, рдЬреЛ
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рднреА рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдерд╛ ред
рд╣реБрдХ рдХреЛрдб рддреБрдЪреНрдЫ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ IAT рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реНрдлреА рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рд╣реБрдХ рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдЗрддрдиреА рдЬрд▓реНрджреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╕рдВрджреЗрд╢ рдХрдВрдЯреНрд░реЛрд▓рдСрдл рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ RM_GetObjectInstance рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╕рдорд╛рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдореВрд▓ RegisterWindowMessage рдкрд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рдеред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рд▓рдВрдмреА рдФрд░ рдХрдард┐рди рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред