amcap源代码,visual studio 亲测通过,打开摄像头设备。
// File: AMCap.h
//
// Desc: DirectShow sample code - audio/video capture.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Macros
#define SAFE_RELEASE(x) { if (x) x->Release(); x = NULL; }
// device notification definitions
#if (WINVER < 0x0500)
#define DBT_DEVTYP_DEVICEINTERFACE 0x00000005 // device interface class
#define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
typedef PVOID HDEVNOTIFY;
#endif
extern "C"
{
typedef BOOL (/* WINUSERAPI */ WINAPI *PUnregisterDeviceNotification)(
IN HDEVNOTIFY Handle
);
typedef HDEVNOTIFY (/* WINUSERAPI */ WINAPI *PRegisterDeviceNotificationA)(
IN HANDLE hRecipient,
IN LPVOID NotificationFilter,
IN DWORD Flags
);
typedef HDEVNOTIFY (/* WINUSERAPI */ WINAPI *PRegisterDeviceNotificationW)(
IN HANDLE hRecipient,
IN LPVOID NotificationFilter,
IN DWORD Flags
);
}
#ifdef UNICODE
#define PRegisterDeviceNotification PRegisterDeviceNotificationW
#else
#define PRegisterDeviceNotification PRegisterDeviceNotificationA
#endif // !UNICODE
#if (WINVER < 0x0500)
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
char dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A;
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
wchar_t dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W;
#ifdef UNICODE
typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
typedef PDEV_BROADCAST_DEVICEINTERFACE_W PDEV_BROADCAST_DEVICEINTERFACE;
#else
typedef DEV_BROADCAST_DEVICEINTERF
1