| 1 | #ifndef __WINE_WINE_UNDOCCOMCTL32_H__ | 
|---|
| 2 | #define __WINE_WINE_UNDOCCOMCTL32_H__ | 
|---|
| 3 |  | 
|---|
| 4 | /************************************************************************** | 
|---|
| 5 | * The MRU-API is a set of functions to manipulate MRU(Most Recently Used) | 
|---|
| 6 | * lists. | 
|---|
| 7 | * | 
|---|
| 8 | * Stored in the reg. as a set of values under a single key.  Each item in the | 
|---|
| 9 | * list has a value name that is a single char. 'a' - 'z', '{', '|' or '}'. | 
|---|
| 10 | * The order of the list is stored with value name 'MRUList' which is a string | 
|---|
| 11 | * containing the value names (i.e. 'a', 'b', etc.) in the relevant order. | 
|---|
| 12 | */ | 
|---|
| 13 |  | 
|---|
| 14 | typedef struct tagCREATEMRULIST | 
|---|
| 15 | { | 
|---|
| 16 | DWORD  cbSize;        /* size of struct */ | 
|---|
| 17 | DWORD  nMaxItems;     /* max no. of items in list */ | 
|---|
| 18 | DWORD  dwFlags;       /* see below */ | 
|---|
| 19 | HKEY   hKey;          /* root reg. key under which list is saved */ | 
|---|
| 20 | LPCSTR lpszSubKey;    /* reg. subkey */ | 
|---|
| 21 | PROC   lpfnCompare;   /* item compare proc */ | 
|---|
| 22 | } CREATEMRULIST, *LPCREATEMRULIST; | 
|---|
| 23 |  | 
|---|
| 24 | /* dwFlags */ | 
|---|
| 25 | #define MRUF_STRING_LIST  0 /* list will contain strings */ | 
|---|
| 26 | #define MRUF_BINARY_LIST  1 /* list will contain binary data */ | 
|---|
| 27 | #define MRUF_DELAYED_SAVE 2 /* only save list order to reg. is FreeMRUList */ | 
|---|
| 28 |  | 
|---|
| 29 | /* If list is a string list lpfnCompare has the following prototype | 
|---|
| 30 | * int CALLBACK MRUCompareString(LPCSTR s1, LPCSTR s2) | 
|---|
| 31 | * for binary lists the prototype is | 
|---|
| 32 | * int CALLBACK MRUCompareBinary(LPCVOID data1, LPCVOID data2, DWORD cbData) | 
|---|
| 33 | * where cbData is the no. of bytes to compare. | 
|---|
| 34 | * Need to check what return value means identical - 0? | 
|---|
| 35 | */ | 
|---|
| 36 |  | 
|---|
| 37 | typedef struct tagWINEMRUITEM | 
|---|
| 38 | { | 
|---|
| 39 | DWORD          size;        /* size of data stored               */ | 
|---|
| 40 | DWORD          itemFlag;    /* flags                             */ | 
|---|
| 41 | BYTE           datastart; | 
|---|
| 42 | } WINEMRUITEM, *LPWINEMRUITEM; | 
|---|
| 43 |  | 
|---|
| 44 | /* itemFlag */ | 
|---|
| 45 | #define WMRUIF_CHANGED   0x0001 /* this dataitem changed             */ | 
|---|
| 46 |  | 
|---|
| 47 | typedef struct tagWINEMRULIST | 
|---|
| 48 | { | 
|---|
| 49 | CREATEMRULIST  extview;     /* original create information       */ | 
|---|
| 50 | DWORD          wineFlags;   /* internal flags                    */ | 
|---|
| 51 | DWORD          cursize;     /* current size of realMRU           */ | 
|---|
| 52 | LPSTR          realMRU;     /* pointer to string of index names  */ | 
|---|
| 53 | LPWINEMRUITEM  *array;      /* array of pointers to data         */ | 
|---|
| 54 | /* in 'a' to 'z' order               */ | 
|---|
| 55 | } WINEMRULIST, *LPWINEMRULIST; | 
|---|
| 56 |  | 
|---|
| 57 | /* wineFlags */ | 
|---|
| 58 | #define WMRUF_CHANGED  0x0001   /* MRU list has changed              */ | 
|---|
| 59 |  | 
|---|
| 60 | HANDLE WINAPI CreateMRUListA (LPCREATEMRULIST lpcml); | 
|---|
| 61 | DWORD  WINAPI FreeMRUList (HANDLE hMRUList); | 
|---|
| 62 | INT    WINAPI AddMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData); | 
|---|
| 63 | INT    WINAPI AddMRUStringA(HANDLE hList, LPCSTR lpszString); | 
|---|
| 64 | BOOL   WINAPI DelMRUString(HANDLE hList, INT nItemPos); | 
|---|
| 65 | INT    WINAPI FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum); | 
|---|
| 66 | INT    WINAPI FindMRUStringA (HANDLE hList, LPCSTR lpszString, LPINT lpRegNum); | 
|---|
| 67 | HANDLE WINAPI CreateMRUListLazyA (LPCREATEMRULIST lpcml, DWORD dwParam2, DWORD dwParam3, DWORD dwParam4); | 
|---|
| 68 | INT    WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer,DWORD nBufferSize); | 
|---|
| 69 |  | 
|---|
| 70 |  | 
|---|
| 71 |  | 
|---|
| 72 | #endif /* __WINE_WINE_UNDOCCOMCTL32_H__ */ | 
|---|