28 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
35 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
41 DWORD dwProcessID = 0;
42 ::GetWindowThreadProcessId(hWnd, &dwProcessID);
44 if (dwProcessID != (DWORD)lParam)
47 if (::GetParent(hWnd) == NULL)
59 DWORD dwProcessID = 0;
60 ::GetWindowThreadProcessId(hWnd, &dwProcessID);
62 if (dwProcessID != ::GetCurrentProcessId())
65 if (::GetWindowLong(hWnd, GWL_HINSTANCE) == lParam)
84 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
87 ::GetModuleFileName(0, (LPCH)&buf, MAX_PATH);
89 HINSTANCE instance = ::GetModuleHandle(buf);
91 ::EnumChildWindows(::GetDesktopWindow(), (WNDENUMPROC)
EnumWindowProc, (LPARAM)instance);
102 if (!mIsInitialise)
return;
106 mIsInitialise =
false;
111 mClipboardData[_type] = _data;
113 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
117 size_t size = (mPutTextInClipboard.size() + 1) * 2;
119 if (::OpenClipboard((HWND)mHwnd))
122 HGLOBAL hgBuffer = ::GlobalAlloc(GMEM_DDESHARE, size);
123 wchar_t * chBuffer = NULL;
124 if ((hgBuffer) && (chBuffer = (
wchar_t*)GlobalLock(hgBuffer)))
126 ::memcpy(chBuffer, mPutTextInClipboard.asWStr_c_str(), size);
127 ::GlobalUnlock(hgBuffer);
128 ::SetClipboardData(CF_UNICODETEXT, hgBuffer);
138 MapString::iterator iter = mClipboardData.find(_type);
139 if (iter != mClipboardData.end()) mClipboardData.erase(iter);
144 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
149 if ( ::OpenClipboard((HWND)mHwnd) )
151 HANDLE hData = ::GetClipboardData(CF_UNICODETEXT);
152 wchar_t * chBuffer = NULL;
153 if ((hData) && (chBuffer = (
wchar_t*)::GlobalLock(hData)))
156 ::GlobalUnlock(hData);
161 if (mPutTextInClipboard != buff)
168 MapString::iterator iter = mClipboardData.find(_type);
169 if (iter != mClipboardData.end())
return (*iter).second;
174 MapString::iterator iter = mClipboardData.find(_type);
175 if (iter != mClipboardData.end())
return (*iter).second;