Add strmif.h to the headers included in libuuid.
[wine] / dlls / shlwapi / ordinal.h
1 /*
2  * Internal structures (read "undocumented") used by the
3  * ordinal entry points.
4  *
5  * Determined by experimentation.
6  *
7  * Copyright 2001 Guy Albertelli
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  */
23
24 typedef struct {
25     INT     size;      /* [in]  (always 0x18)                       */
26     LPCSTR  ap1;       /* [out] start of scheme                     */
27     INT     sizep1;    /* [out] size of scheme (until colon)        */
28     LPCSTR  ap2;       /* [out] pointer following first colon       */
29     INT     sizep2;    /* [out] size of remainder                   */
30     INT     fcncde;    /* [out] function match of p1 (0 if unknown) */
31 } UNKNOWN_SHLWAPI_1;
32
33 DWORD WINAPI SHLWAPI_1(LPCSTR x, UNKNOWN_SHLWAPI_1 *y);
34
35 typedef struct {
36     INT     size;      /* [in]  (always 0x18)                       */
37     LPCWSTR ap1;       /* [out] start of scheme                     */
38     INT     sizep1;    /* [out] size of scheme (until colon)        */
39     LPCWSTR ap2;       /* [out] pointer following first colon       */
40     INT     sizep2;    /* [out] size of remainder                   */
41     INT     fcncde;    /* [out] function match of p1 (0 if unknown) */
42 } UNKNOWN_SHLWAPI_2;
43
44 DWORD WINAPI SHLWAPI_2(LPCWSTR x, UNKNOWN_SHLWAPI_2 *y);
45
46 HRESULT WINAPI SHLWAPI_436(LPCWSTR idstr, CLSID *id);
47
48 /* Macro to get function pointer for a module*/
49 #define GET_FUNC(func, module, name, fail) \
50   do { \
51     if (!func) { \
52       if (!SHLWAPI_h##module && !(SHLWAPI_h##module = LoadLibraryA(#module ".dll"))) return fail; \
53       if (!(func = (void*)GetProcAddress(SHLWAPI_h##module, name))) return fail; \
54     } \
55   } while (0)
56
57 /* SHLWAPI_266 definitions and structures */
58 #define SHELL_NO_POLICY -1
59
60 typedef struct tagPOLICYDATA
61 {
62   DWORD policy;        /* flags value passed to SHRestricted */
63   LPCWSTR appstr;      /* application str such as "Explorer" */
64   LPCWSTR keystr;      /* name of the actual registry key / policy */
65 } POLICYDATA, *LPPOLICYDATA;
66
67
68 extern HMODULE SHLWAPI_hshell32;
69
70 /* Shared internal functions */
71 BOOL WINAPI SHLWAPI_PathFindLocalExeA(LPSTR lpszPath, DWORD dwWhich);
72 BOOL WINAPI SHLWAPI_PathFindLocalExeW(LPWSTR lpszPath, DWORD dwWhich);
73 BOOL WINAPI SHLWAPI_PathFindOnPathExA(LPSTR lpszFile,LPCSTR *lppszOtherDirs,DWORD dwWhich);
74 BOOL WINAPI SHLWAPI_PathFindOnPathExW(LPWSTR lpszFile,LPCWSTR *lppszOtherDirs,DWORD dwWhich);