aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Input/in_wmvdrm/directdraw.cpp
blob: a62de00e80a8858829a71ae29164b7e6ab431fa0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "main.h"
#include "directdraw.h"

HRESULT (WINAPI *_DirectDrawCreate)(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter) = 0;

HRESULT DDrawCreate(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter)
{
		static int a = 0;
	if (!_DirectDrawCreate && !a)
	{
		a++;
		HINSTANCE h = LoadLibrary(L"ddraw.dll");
		if (h)
		{
			*(void**)&_DirectDrawCreate = (void*)GetProcAddress(h, "DirectDrawCreate");
		}
	}

	if (_DirectDrawCreate)
		return _DirectDrawCreate(lpGUID, lplpDD, pUnkOuter);
	else
		return S_OK; // TODO: uhhh no this should be an error :)
}