Register window class on mciavi driver loading
Dmitry Timoshkov
dmitry at baikal.ru
Tue Jan 6 07:22:35 CST 2004
Hello,
Changelog:
Dmitry Timoshkov <dmitry at codeweavers.com>
Register window class on mciavi driver loading, and unregister it
on driver unloading.
diff -u cvs/hq/wine/dlls/winmm/mciavi/mciavi.c wine/dlls/winmm/mciavi/mciavi.c
--- cvs/hq/wine/dlls/winmm/mciavi/mciavi.c 2004-01-01 15:33:54.000000000 +0800
+++ wine/dlls/winmm/mciavi/mciavi.c 2004-01-06 20:32:05.000000000 +0800
@@ -140,6 +140,8 @@ static DWORD MCIAVI_drvOpen(LPSTR str, L
/* session instance */
if (!modp) return 0xFFFFFFFF;
+ if (!MCIAVI_RegisterClass()) return 0;
+
wma = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_MCIAVI));
if (!wma)
return 0;
@@ -169,6 +171,8 @@ static DWORD MCIAVI_drvClose(DWORD dwDev
wma = (WINE_MCIAVI*)mciGetDriverData(dwDevID);
if (wma) {
+ MCIAVI_UnregisterClass();
+
EnterCriticalSection(&wma->cs);
mciSetDriverData(dwDevID, 0);
diff -u cvs/hq/wine/dlls/winmm/mciavi/private_mciavi.h wine/dlls/winmm/mciavi/private_mciavi.h
--- cvs/hq/wine/dlls/winmm/mciavi/private_mciavi.h 2004-01-06 17:42:34.000000000 +0800
+++ wine/dlls/winmm/mciavi/private_mciavi.h 2004-01-06 20:30:10.000000000 +0800
@@ -103,7 +103,9 @@ LRESULT MCIAVI_PaintFrame(WINE_MCIAVI* w
WINE_MCIAVI* MCIAVI_mciGetOpenDev(UINT wDevID);
DWORD MCIAVI_mciClose(UINT, DWORD, LPMCI_GENERIC_PARMS);
-/* window.c */
+/* wnd.c */
+BOOL MCIAVI_RegisterClass(void);
+BOOL MCIAVI_UnregisterClass(void);
BOOL MCIAVI_CreateWindow(WINE_MCIAVI* wma, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSA lpOpenParms);
DWORD MCIAVI_mciPut(UINT wDevID, DWORD dwFlags, LPMCI_DGV_PUT_PARMS lpParms);
DWORD MCIAVI_mciWhere(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms);
diff -u cvs/hq/wine/dlls/winmm/mciavi/wnd.c wine/dlls/winmm/mciavi/wnd.c
--- cvs/hq/wine/dlls/winmm/mciavi/wnd.c 2004-01-01 15:33:54.000000000 +0800
+++ wine/dlls/winmm/mciavi/wnd.c 2004-01-06 20:32:41.000000000 +0800
@@ -86,28 +86,36 @@ static LRESULT WINAPI MCIAVI_WindowProc(
return 0;
}
-BOOL MCIAVI_CreateWindow(WINE_MCIAVI* wma, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSA lpOpenParms)
+BOOL MCIAVI_UnregisterClass(void)
{
- WNDCLASSA wndClass;
- HWND hParent = 0;
- DWORD dwStyle = WS_OVERLAPPEDWINDOW;
- int p = CW_USEDEFAULT;
- RECT rc;
+ return UnregisterClassA("MCIAVI", MCIAVI_hInstance);
+}
- /* what should be done ? */
- if (wma->hWnd) return TRUE;
+BOOL MCIAVI_RegisterClass(void)
+{
+ WNDCLASSA wndClass;
ZeroMemory(&wndClass, sizeof(WNDCLASSA));
wndClass.style = CS_DBLCLKS;
wndClass.lpfnWndProc = (WNDPROC)MCIAVI_WindowProc;
- wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = sizeof(MCIDEVICEID);
wndClass.hInstance = MCIAVI_hInstance;
wndClass.hCursor = LoadCursorA(0, (LPSTR)IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wndClass.lpszClassName = "MCIAVI";
- if (!RegisterClassA(&wndClass)) return FALSE;
+ return RegisterClassA(&wndClass);
+}
+
+BOOL MCIAVI_CreateWindow(WINE_MCIAVI* wma, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSA lpOpenParms)
+{
+ HWND hParent = 0;
+ DWORD dwStyle = WS_OVERLAPPEDWINDOW;
+ int p = CW_USEDEFAULT;
+ RECT rc;
+
+ /* what should be done ? */
+ if (wma->hWnd) return TRUE;
if (dwFlags & MCI_DGV_OPEN_PARENT) hParent = lpOpenParms->hWndParent;
if (dwFlags & MCI_DGV_OPEN_WS) dwStyle = lpOpenParms->dwStyle;
More information about the wine-patches
mailing list