#include <winsock.h>
#include <windows.h>
#include <iostream>
#include <vfw.h>
void SetClientRect(HWND hwnd, HWND hwndMCI)
{
RECT rect;
GetWindowRect(hwndMCI, &rect);
AdjustWindowRectEx(&rect, GetWindowLong(hwnd, GWL_STYLE),
FALSE, GetWindowLong(hwnd, GWL_EXSTYLE));
MoveWindow(hwnd, rect.left, rect.top, rect.right - rect.left,
rect.bottom - rect.top, TRUE);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case MCIWNDM_NOTIFYPOS:
case MCIWNDM_NOTIFYSIZE:
SetClientRect(hwnd, (HWND)wParam);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
HWND hwnd;
WNDCLASS wndClass;
static TCHAR szAppName[] = TEXT("WIHOCW"); // global declaration
if (hPrevInstance == NULL)
{
static TCHAR szAppName[] = TEXT("WIHOCW");
memset(&wndClass, 0, sizeof(wndClass));
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
// wndClass.lpszClassName = "HELLO"; // Possible VC++ 2005
// new !!!!! (13/1/2009)
wndClass.lpszClassName = szAppName;
if (!RegisterClass(&wndClass)) return FALSE;
}
// hwnd = CreateWindow("HELLO", "HELLO", // original coding
//------------------------------------------------------------//
// --- *** Creates the Window for the Application -- ***/
//----------------------------------------------------------//
hwnd = CreateWindow(szAppName, szAppName,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
NULL, NULL, hInstance, NULL);
//-------------------------------------------------------------------------------//
// --- *** MAJOR ISSUE FOR THE COMMAND TO INSERT THE VIDEO --- **** (14/01/2009)
//-------------------------------------------------------------------------------//
// SetClientRect(hwnd, MCIWndCreate(hwnd, hInstance, WS_VISIBLE | WS_CHILD | MCIWNDF_SHOWALL |
// MCIWNDF_NOTIFYSIZE | MCIWNDF_NOTIFYPOS, lpCmdLine));
SetClientRect(hwnd, MCIWndCreate(hwnd, hInstance, WS_VISIBLE | WS_CHILD | MCIWNDF_SHOWALL |
MCIWNDF_NOTIFYSIZE | MCIWNDF_NOTIFYPOS, lpCmdLine));
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0))
DispatchMessage(&msg);
return msg.wParam;
}
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
by: waysidePosted on 2009-01-16 at 11:56:28ID: 23396753
You are apparently trying to compile a unicode version. This causes a problem with this call:
MCIWndCreate(hwnd, hInstance, WS_VISIBLE | WS_CHILD | MCIWNDF_SHOWALL |
MCIWNDF_NOTIFYSIZE | MCIWNDF_NOTIFYPOS, lpCmdLine)
The last argument is declared as LPSTR, and the unicode form of this function requires LPWSTR.
Easiest fix is to not compile with unicode.