рдЗрдВрдЯреЗрд▓ рд╡рд╛рдпрд░рд▓реЗрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ: рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП

рдирд╣реАрдВ, рдпрд╣ рд╣рдм рдЗрдВрдЬрди рдореЗрдВ рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╛рдИрдбреАрдЖрдИ рддрдХрдиреАрдХ рдкрд░ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ рд▓реЗрдЦ рдХрд╛ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡рд╛рдИрдбреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рдИрдбреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдбреАрдЖрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрд╕рдбреАрдХреЗ рд╣реИ ? рдирд╣реАрдВ? рдлрд┐рд░ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред

рдХреМрди рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ? рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдХреА рдХрд▓реНрдкрдирд╛ рд╕реЗ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рддрд╣ рдкрд░ рдкрдбрд╝реЗ рд╡рд┐рдЪрд╛рд░ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдСрдбрд┐рдпреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ, рдлрд╝реЛрдЯреЛ рджреЗрдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВред рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдИрдбреАрдЖрдИ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯреАрд╡реА рд╕реНрдХреНрд░реАрди рдкрд░ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рд╡рд┐рд╖рдп рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ - рдЗрд╕ рд╕рдордп рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд╛рдИрдбреАрдЖрдИ рдПрдбреЗрдкреНрдЯрд░ рдирд╣реАрдВ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╡рд╛рдИрдбреАрдЖрдИ рдПрдбреЗрдкреНрдЯрд░ рдЯреАрд╡реА рдкрд░ рддреБрд░рдВрдд рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓рдЬреА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реАрдИрдПрд╕ 2012 рдореЗрдВ рдкрд╣рд▓реЗ рдЯреАрд╡реА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рд╛рд▓ рдЕрдкрдиреА рд░рд┐рд▓реАрдЬ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ , рдпрд╣ рд╡рд┐рд╖рдп рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рджреЗрдЧрд╛ред

рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡рд╛рдИрдбреАрдЖрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рдиреЗ рдЗрдВрдЯреЗрд▓ рд╡рд╛рдИрдбреАрдЖрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрд╕рдбреАрдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдПрд╕рдбреАрдХреЗ рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:





SDK рдореЗрдВ рдЖрдкрдХреЛ рдкреНрд░рд▓реЗрдЦрди, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ C ++, C # рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдВрдЧреЗред

рд╡реИрд╕реЗ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд╛рдИрдбреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдРрд╕реЗ рд▓реЛрд╣реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реЛрдЧреАред

рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╡рд╛рдИрдбреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рдЗрдВрдЯреЗрд▓ рд╡рд╛рдИрдбреАрдЖрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрд╕рдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд┐рддрд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рдпрдВ SDK рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ

#include <IntelWiDiExtensions_i.h> 

IWiDiExtensions рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдЪреАрдЬрд╝ рд╣реИ

 HRESULT hr; hr = CoCreateInstance(CLSID_WiDiExtensions, NULL, CLSCTX_INPROC_SERVER, __uuidof(IWiDiExtensions), (LPVOID*)&m_pWiDi); if(hr == S_OK) { hr = m_pWiDi->Initialize((DWORD)m_hWnd); } 

рд╕рднреА рд╡рд╛рдИрдбреАрдЖрдИ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВред рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рдбрд╝рдХреА рд╕рдВрджреЗрд╢ рдЦрд┐рдбрд╝рдХреА рдкрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╣реИрдВрдбрд▓ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред

 HRESULT Initialize( HWND windowHandle ); 

рдкреНрд░рд╛рд░рдВрдн рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡реЗрджрди рд╡рд┐рдВрдбреЛ рдХреЛ WM_WIDI_INITIALIZED рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╣реБрдИ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WM_WIDI_INITIALIZATION_FAILED рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред WM_WIDI_INITIALIZATION_FAILED рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдХреЗ wParam рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рд╣реЛрдЧрд╛:

 RC_WIDI_APP_NOT_FOUND //       WiDi RC_WIDI_FAILED_TO_START //        WiDi RC_INTERNAL_ERROR //    RC_WIDI_APPLICATION_ERROR //   

рд╕рдлрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрдкрд▓рдмреНрдз рд╡рд╛рдИрдбреАрдЖрдИ рдПрдбреЗрдкреНрдЯрд░ рдХреА рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ StartScanForAdapters рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

 HRESULT StartScanForAdapters(); 

рдорд┐рд▓реЗ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WM_WIDI_ADAPTER_DISCOVERED рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред LParam рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдХрд╛ рд╕реВрдЪрдХ рд╣реЛрдЧрд╛ред рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЪрдпрдирд┐рдд рдПрдбрд╛рдкреНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЦреЛрдЬ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдВрдбреЛ рдХреЛ WM_WIDI_SCAN_COMPLETE рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред WParam рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдХреЛрдб рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕реНрдХреИрди рдХреНрдпреЛрдВ рдкреВрд░рд╛ рд╣реБрдЖ:

 RC_SUCCESS //    RC_UNABLE_TO_START_SCAN //     RC_INTERNAL_ERROR //    RC_WIDI_APPLICATION_ERROR //        WiDi RC_CONNECT_CANCELLED_SCAN //    


рдпрджрд┐ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред StartConnectionToAdapter рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 HRESULT StartConnectionToAdapter( BSTR AdapterUniqueID, int SourceScreenResolution, int TargetScreenResolution, ScreenMode Mode ); 

рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж, рд╡рд┐рдВрдбреЛ рдХреЛ WM_WIDI_CONNECTED рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ - WM_WIDI_DISCONNECT_FAILED , рдХреЛрдб рдореЗрдВ wParam рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛:

 RC_CONNECTION_DROPPED //     RC_USER_DISCONNECT //     

рдПрдбреЗрдкреНрдЯрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ lParam рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╡рд╛рдИрдбреАрдЖрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрд╕рдбреАрдХреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╡рд╛рд▓ рд╣реЛрдВрдЧреЗ - рдпрд╣рд╛рдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдпрд╛ рдЗрдВрдЯреЗрд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдиреЗрдЯрд╡рд░реНрдХ рдлреЛрд░рдо рдкрд░ рдкреВрдЫреЗрдВред

Source: https://habr.com/ru/post/In138795/


All Articles