aboutsummaryrefslogtreecommitdiff
path: root/Src/omBrowser/ifc_imageloader.h
blob: 22bcdd4a97718ed010e5f750b19fce19eb657192 (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
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
#ifndef NULLSOFT_WINAMP_OMIMAGELOADER_INTERFACE_HEADER
#define NULLSOFT_WINAMP_OMIMAGELOADER_INTERFACE_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <bfc/dispatch.h>

class __declspec(novtable) ifc_omimageloader : public Dispatchable
{
protected:
	ifc_omimageloader() {}
	~ifc_omimageloader() {}

public:
	HRESULT LoadData(int *widthOut, int *heightOut, void **dataOut);
	HRESULT FreeData(void *data);

	HRESULT LoadBitmapEx(HBITMAP *bitmapOut, BITMAPINFOHEADER *headerInfo, void **dataOut);
	HRESULT LoadBitmap(HBITMAP *bitmapOut, int *widthOut, int *heightOut);

public:
	DISPATCH_CODES
	{
		API_LOADDATA		= 10,
		API_FREEDATA		= 20,
		API_LOADBITMAP		= 30,
		API_LOADBITMAPEX	= 40,
	};
};

inline HRESULT ifc_omimageloader::LoadData(int *widthOut, int *heightOut, void **dataOut)
{
	return _call(API_LOADDATA, (HRESULT)E_NOTIMPL, widthOut, heightOut, dataOut);
}

inline HRESULT ifc_omimageloader::FreeData(void *data)
{
	return _call(API_FREEDATA, (HRESULT)E_NOTIMPL, data);
}

inline HRESULT ifc_omimageloader::LoadBitmapEx(HBITMAP *bitmapOut, BITMAPINFOHEADER *headerInfo, void **dataOut)
{
	return _call(API_LOADBITMAPEX, (HRESULT)E_NOTIMPL, bitmapOut, headerInfo, dataOut, bitmapOut);
}

inline HRESULT ifc_omimageloader::LoadBitmap(HBITMAP *bitmapOut, int *widthOut, int *heightOut)
{
	return _call(API_LOADBITMAP, (HRESULT)E_NOTIMPL, bitmapOut, widthOut, heightOut);
}

#endif //NULLSOFT_WINAMP_OMIMAGELOADER_INTERFACE_HEADER