*/
#include <windows.h>
+#include <winternl.h>
#include <vfw.h>
#include "wine/debug.h"
+#define CAP_DESC_MAX 32
+
WINE_DEFAULT_DEBUG_CHANNEL(avicap32);
+
/*
* unimplemented
*/
HWND
VFWAPI
-capCreateCaptureWindowA(LPCSTR lpszWindowName,
+capCreateCaptureWindowW(LPCWSTR lpszWindowName,
DWORD dwStyle,
INT x,
INT y,
return NULL;
}
-
/*
- * unimplemented
+ * implemented
*/
HWND
VFWAPI
-capCreateCaptureWindowW(LPCWSTR lpszWindowName,
+capCreateCaptureWindowA(LPCSTR lpszWindowName,
DWORD dwStyle,
INT x,
INT y,
HWND hWnd,
INT nID)
{
- UNIMPLEMENTED;
- return NULL;
+ UNICODE_STRING Name;
+ HWND Wnd;
+
+ if (lpszWindowName)
+ RtlCreateUnicodeStringFromAsciiz(&Name, lpszWindowName);
+ else
+ Name.Buffer = NULL;
+
+ Wnd = capCreateCaptureWindowW(Name.Buffer,
+ dwStyle,
+ x, y,
+ nWidth,
+ nHeight,
+ hWnd,
+ nID);
+
+ RtlFreeUnicodeString(&Name);
+ return Wnd;
}
*/
BOOL
VFWAPI
-capGetDriverDescriptionA(WORD wDriverIndex,
- LPSTR lpszName,
+capGetDriverDescriptionW(WORD wDriverIndex,
+ LPWSTR lpszName,
INT cbName,
- LPSTR lpszVer,
+ LPWSTR lpszVer,
INT cbVer)
{
UNIMPLEMENTED;
/*
- * unimplemented
+ * implemented
*/
BOOL
VFWAPI
-capGetDriverDescriptionW(WORD wDriverIndex,
- LPWSTR lpszName,
+capGetDriverDescriptionA(WORD wDriverIndex,
+ LPSTR lpszName,
INT cbName,
- LPWSTR lpszVer,
+ LPSTR lpszVer,
INT cbVer)
{
- UNIMPLEMENTED;
- return FALSE;
+ WCHAR DevName[CAP_DESC_MAX], DevVer[CAP_DESC_MAX];
+ BOOL Result;
+
+ Result = capGetDriverDescriptionW(wDriverIndex, DevName, CAP_DESC_MAX, DevVer, CAP_DESC_MAX);
+ if (Result)
+ {
+ WideCharToMultiByte(CP_ACP, 0, DevName, -1, lpszName, cbName, NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, DevVer, -1, lpszVer, cbVer, NULL, NULL);
+ }
+
+ return Result;
}