Hi, i found this very simple app which just pops up a window:
#include <windows.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hwnd, msg, wparam, lparam); } } int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmdLine, int cmdShow) { WNDCLASSEX class; MSG msg; HWND window; /* this stuff is just boilerplate */ memset(&class, 0, sizeof(WNDCLASSEX)); class.cbSize = sizeof(WNDCLASSEX); class.hInstance = instance; class.lpszClassName = "MainWnd"; class.lpfnWndProc = WndProc; class.hbrBackground = (HBRUSH) COLOR_WINDOW + 1; if (!RegisterClassEx(&class)) { MessageBox(NULL, "Could not register window class", "", MB_OK | MB_ICONERROR); return 1; } window = CreateWindowEx(0, "MainWnd", "Main Window", WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 200, 150, NULL, NULL, instance, NULL); ShowWindow(window, cmdShow); /* Every thread that creates a window must pump the message loop */ while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } Now i tried to implement this in a dll (avicap32.dll) in capCreatecapturewindow like this: /*********************************************************************** * capCreateCaptureWindowW (AVICAP32.@) */ HWND VFWAPI capCreateCaptureWindowW(LPCWSTR lpszWindowName, DWORD dwStyle, INT x, INT y, INT nWidth, INT nHeight, HWND hWnd, INT nID) { HWND ret; HINSTANCE dummy; LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProcW(hwnd, msg, wparam, lparam); } } int WINAPI Try(HINSTANCE instance, HINSTANCE prev, LPSTR cmdLine, int cmdShow) { WNDCLASSEXW class; MSG msg; HWND window; /* this stuff is just boilerplate */ memset(&class, 0, sizeof(WNDCLASSEXW)); class.cbSize = sizeof(WNDCLASSEXW); class.hInstance = instance; dummy=instance; class.lpszClassName = "MainWnd"; class.lpfnWndProc = WndProc; class.hbrBackground = (HBRUSH) COLOR_WINDOW + 1; if (!RegisterClassExW(&class)) { MessageBoxW(NULL, "Could not register window class", "", MB_OK | MB_ICONERROR); return 1; } window = CreateWindowExW(0, "MainWnd", "Main Window", WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 200, 150, NULL, NULL, instance, NULL); ret=window; ShowWindow(window, cmdShow); /* Every thread that creates a window must pump the message loop */ while (GetMessageW(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessageW(&msg);} return 0; } Try(dummy,NULL,NULL,0); return ret; } Now when capcreatecapturewindow is called no window shows up at all. What did i do wrong? Greetings Robbert : ___________________________________________________________ Moving house? Beach bar in Thailand? New Wardrobe? Win £10k with Yahoo! Mail to make your dream a reality. Get Yahoo! Mail www.yahoo.co.uk/10k