2 * Internal structures (read "undocumented") used by the
3 * ordinal entry points.
5 * Determined by experimentation.
7 * Copyright 2001 Guy Albertelli
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.
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.
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
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) */
33 DWORD WINAPI
SHLWAPI_1(LPCSTR x
, UNKNOWN_SHLWAPI_1
*y
);
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) */
44 DWORD WINAPI
SHLWAPI_2(LPCWSTR x
, UNKNOWN_SHLWAPI_2
*y
);
46 HRESULT WINAPI
SHLWAPI_436(LPCWSTR idstr
, CLSID
*id
);
48 /* Macro to get function pointer for a module*/
49 #define GET_FUNC(func, module, name, fail) \
52 if (!SHLWAPI_h##module && !(SHLWAPI_h##module = LoadLibraryA(#module ".dll"))) return fail; \
53 if (!(func = (void*)GetProcAddress(SHLWAPI_h##module, name))) return fail; \
57 /* SHLWAPI_266 definitions and structures */
58 #define SHELL_NO_POLICY -1
60 typedef struct tagPOLICYDATA
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
;
68 extern HMODULE SHLWAPI_hshell32
;
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
);