diff options
Diffstat (limited to 'ucb')
-rw-r--r-- | ucb/source/ucp/odma/odma_provider.cxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ucb/source/ucp/odma/odma_provider.cxx b/ucb/source/ucp/odma/odma_provider.cxx index 7ba5b7c2f5..2f09e05103 100644 --- a/ucb/source/ucp/odma/odma_provider.cxx +++ b/ucb/source/ucp/odma/odma_provider.cxx @@ -79,11 +79,26 @@ ContentProvider::~ContentProvider() } } // ----------------------------------------------------------------------------- +inline bool is_current_process_window(HWND hwnd) +{ + DWORD pid; + GetWindowThreadProcessId(hwnd, &pid); + return (pid == GetCurrentProcessId()); +} + +HWND choose_parent_window() +{ + HWND hwnd_parent = GetForegroundWindow(); + if (!is_current_process_window(hwnd_parent)) + hwnd_parent = GetDesktopWindow(); + return hwnd_parent; +} + ODMHANDLE ContentProvider::getHandle() { if(!m_aOdmHandle) { - ODMSTATUS odm = NODMRegisterApp(&m_aOdmHandle,ODM_API_VERSION,ODMA_ODMA_REGNAME,NULL,NULL); + ODMSTATUS odm = NODMRegisterApp(&m_aOdmHandle,ODM_API_VERSION,ODMA_ODMA_REGNAME,(DWORD) choose_parent_window( ),NULL); switch(odm) { case ODM_SUCCESS: |