:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / obj_extracticon.h
1 /************************************************************
2  *    IExtractIconA
3  */
4
5 #ifndef __WINE_WINE_OBJ_EXTRACTICON_H
6 #define __WINE_WINE_OBJ_EXTRACTICON_H
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif /* defined(__cplusplus) */
11
12 #define IID_IExtractIcon WINELIB_NAME_AW(IID_IExtractIcon)
13
14 typedef struct IExtractIconA IExtractIconA,*LPEXTRACTICONA;
15 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
16
17 /* GetIconLocation() input flags*/
18 #define GIL_OPENICON     0x0001      /* allows containers to specify an "open" look */
19 #define GIL_FORSHELL     0x0002      /* icon is to be displayed in a ShellFolder */
20 #define GIL_ASYNC        0x0020      /* this is an async extract, return E_ASYNC */
21
22 /* GetIconLocation() return flags */
23 #define GIL_SIMULATEDOC  0x0001      /* simulate this document icon for this */
24 #define GIL_PERINSTANCE  0x0002      /* icons from this class are per instance (each file has its own) */
25 #define GIL_PERCLASS     0x0004      /* icons from this class per class (shared for all files of this type) */
26 #define GIL_NOTFILENAME  0x0008      /* location is not a filename, must call ::ExtractIcon */
27 #define GIL_DONTCACHE    0x0010      /* this icon should not be cached */
28
29
30 #define ICOM_INTERFACE IExtractIconA
31 #define IExtractIconA_METHODS \
32         ICOM_METHOD5(HRESULT, GetIconLocation, UINT, uFlags, LPSTR, szIconFile, UINT, cchMax, INT*, piIndex, UINT *, pwFlags) \
33         ICOM_METHOD5(HRESULT, Extract, LPCSTR, pszFile, UINT, nIconIndex, HICON*, phiconLarge, HICON*, phiconSmall, UINT, nIconSize)
34 #define IExtractIconA_IMETHODS \
35         IUnknown_IMETHODS \
36         IExtractIconA_METHODS
37 ICOM_DEFINE(IExtractIconA,IUnknown)
38 #undef ICOM_INTERFACE
39
40 #define IExtractIconA_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
41 #define IExtractIconA_AddRef(p)                 ICOM_CALL(AddRef,p)
42 #define IExtractIconA_Release(p)                ICOM_CALL(Release,p)
43 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e)      ICOM_CALL5(GetIconLocation,p,a,b,c,d,e)
44 #define IExtractIconA_Extract(p,a,b,c,d,e)      ICOM_CALL5(Extract,p,a,b,c,d,e)
45
46 #ifdef __cplusplus
47 } /* extern "C" */
48 #endif /* defined(__cplusplus) */
49
50 #endif /* __WINE_WINE_OBJ_EXTRACTICON_H */
51