camellia 2.7.0-x86-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CamelliaLib-2.7.0.tar.gz +0 -0
- data/README +59 -0
- data/doc/README +58 -0
- data/doc/camellia.dox +205 -0
- data/doc/html/annotated.html +52 -0
- data/doc/html/camellia_8h-source.html +1618 -0
- data/doc/html/camellia_8h.html +4583 -0
- data/doc/html/doxygen.css +358 -0
- data/doc/html/doxygen.png +0 -0
- data/doc/html/files.html +29 -0
- data/doc/html/ftv2blank.png +0 -0
- data/doc/html/ftv2doc.png +0 -0
- data/doc/html/ftv2folderclosed.png +0 -0
- data/doc/html/ftv2folderopen.png +0 -0
- data/doc/html/ftv2lastnode.png +0 -0
- data/doc/html/ftv2link.png +0 -0
- data/doc/html/ftv2mlastnode.png +0 -0
- data/doc/html/ftv2mnode.png +0 -0
- data/doc/html/ftv2node.png +0 -0
- data/doc/html/ftv2plastnode.png +0 -0
- data/doc/html/ftv2pnode.png +0 -0
- data/doc/html/ftv2vertline.png +0 -0
- data/doc/html/functions.html +108 -0
- data/doc/html/functions_0x62.html +78 -0
- data/doc/html/functions_0x63.html +112 -0
- data/doc/html/functions_0x64.html +113 -0
- data/doc/html/functions_0x65.html +102 -0
- data/doc/html/functions_0x66.html +82 -0
- data/doc/html/functions_0x67.html +76 -0
- data/doc/html/functions_0x68.html +88 -0
- data/doc/html/functions_0x69.html +90 -0
- data/doc/html/functions_0x6b.html +70 -0
- data/doc/html/functions_0x6c.html +88 -0
- data/doc/html/functions_0x6d.html +93 -0
- data/doc/html/functions_0x6e.html +79 -0
- data/doc/html/functions_0x6f.html +74 -0
- data/doc/html/functions_0x70.html +72 -0
- data/doc/html/functions_0x72.html +73 -0
- data/doc/html/functions_0x73.html +130 -0
- data/doc/html/functions_0x74.html +82 -0
- data/doc/html/functions_0x76.html +74 -0
- data/doc/html/functions_0x77.html +75 -0
- data/doc/html/functions_0x78.html +72 -0
- data/doc/html/functions_0x79.html +77 -0
- data/doc/html/functions_0x7e.html +76 -0
- data/doc/html/functions_func.html +93 -0
- data/doc/html/functions_func_0x62.html +64 -0
- data/doc/html/functions_func_0x63.html +83 -0
- data/doc/html/functions_func_0x64.html +99 -0
- data/doc/html/functions_func_0x65.html +95 -0
- data/doc/html/functions_func_0x66.html +74 -0
- data/doc/html/functions_func_0x67.html +72 -0
- data/doc/html/functions_func_0x68.html +76 -0
- data/doc/html/functions_func_0x69.html +70 -0
- data/doc/html/functions_func_0x6c.html +76 -0
- data/doc/html/functions_func_0x6d.html +78 -0
- data/doc/html/functions_func_0x6f.html +65 -0
- data/doc/html/functions_func_0x70.html +64 -0
- data/doc/html/functions_func_0x72.html +65 -0
- data/doc/html/functions_func_0x73.html +113 -0
- data/doc/html/functions_func_0x74.html +74 -0
- data/doc/html/functions_func_0x76.html +64 -0
- data/doc/html/functions_func_0x77.html +64 -0
- data/doc/html/functions_func_0x7e.html +72 -0
- data/doc/html/functions_vars.html +290 -0
- data/doc/html/globals.html +368 -0
- data/doc/html/globals_defs.html +41 -0
- data/doc/html/globals_func.html +364 -0
- data/doc/html/index.html +11 -0
- data/doc/html/main.html +22 -0
- data/doc/html/pages.html +24 -0
- data/doc/html/structCamAffineTransform.html +37 -0
- data/doc/html/structCamArithmParams.html +60 -0
- data/doc/html/structCamBasin.html +62 -0
- data/doc/html/structCamBitmapFont.html +37 -0
- data/doc/html/structCamBlobInfo.html +90 -0
- data/doc/html/structCamBlobs.html +51 -0
- data/doc/html/structCamImage.html +853 -0
- data/doc/html/structCamKeypoint.html +79 -0
- data/doc/html/structCamKeypoints.html +99 -0
- data/doc/html/structCamKeypointsKdTree.html +42 -0
- data/doc/html/structCamKeypointsMatches.html +54 -0
- data/doc/html/structCamLabelingResults.html +46 -0
- data/doc/html/structCamLinearFilterKernel.html +63 -0
- data/doc/html/structCamMeasuresResults.html +54 -0
- data/doc/html/structCamMorphoMathsKernel.html +81 -0
- data/doc/html/structCamPoint.html +46 -0
- data/doc/html/structCamRLEImage.html +183 -0
- data/doc/html/structCamROI.html +80 -0
- data/doc/html/structCamRun.html +56 -0
- data/doc/html/structCamSepFilterKernel.html +67 -0
- data/doc/html/structCamTable.html +46 -0
- data/doc/html/structCamTableOfBasins.html +37 -0
- data/doc/html/structCamVolbergFwdParams.html +46 -0
- data/doc/html/structCamWarpingParams.html +70 -0
- data/doc/html/tab_b.gif +0 -0
- data/doc/html/tab_l.gif +0 -0
- data/doc/html/tab_r.gif +0 -0
- data/doc/html/tabs.css +102 -0
- data/doc/html/todo.html +29 -0
- data/doc/html/tree.html +106 -0
- data/doc/rtf/refman.rtf +7866 -0
- data/ext/Makefile +149 -0
- data/ext/README +12 -0
- data/ext/camellia_ruby.i +493 -0
- data/ext/camellia_ruby_wrap.cxx +21103 -0
- data/ext/extconf.rb +12 -0
- data/ext/install.rb +11 -0
- data/ext/swig_ruby.dsp +159 -0
- data/ext/swig_ruby.vcproj +290 -0
- data/ext/test.rb +31 -0
- data/inc/SHLWAPI.H +661 -0
- data/inc/cam_capture.h +202 -0
- data/inc/camellia.h +2651 -0
- data/inc/camellia_internals.h +205 -0
- data/inc/config.h +62 -0
- data/inc/config.h.in +61 -0
- data/inc/stamp-h1 +1 -0
- data/lib/camellia-fox.rb +39 -0
- data/test/test_arithm.rb +13 -0
- data/test/test_capture.rb +15 -0
- data/test/test_color_labeling.rb +45 -0
- data/test/test_copy.rb +13 -0
- data/test/test_draw.rb +15 -0
- data/test/test_fixed_filters.rb +23 -0
- data/test/test_fox.rb +106 -0
- data/test/test_fox2.rb +108 -0
- data/test/test_histogram.rb +18 -0
- data/test/test_hough.rb +29 -0
- data/test/test_keypoints.rb +106 -0
- data/test/test_labeling.rb +30 -0
- data/test/test_mask.rb +34 -0
- data/test/test_warping.rb +46 -0
- data/test/test_watershed.rb +35 -0
- data/test/ts_camellia.rb +12 -0
- metadata +204 -0
data/ext/test.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'camellia'
|
|
2
|
+
include Camellia
|
|
3
|
+
|
|
4
|
+
j=0
|
|
5
|
+
Thread.new do
|
|
6
|
+
loop do
|
|
7
|
+
sleep 0.01
|
|
8
|
+
puts "#{j}..."
|
|
9
|
+
j+=1
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# CamCapture2 is the original version from the C library
|
|
14
|
+
# It is not Ruby-threads compatible
|
|
15
|
+
image=CamImage.new
|
|
16
|
+
capture=CamCapture2.new(0)
|
|
17
|
+
for i in 1..10 do
|
|
18
|
+
capture.capture image
|
|
19
|
+
puts "Grabbed image #{i}...#{image.width}*#{image.height}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# CamCapture is the Ruby specific version
|
|
23
|
+
# It is fully Ruby-threads compatible
|
|
24
|
+
capture=CamCapture.new(0)
|
|
25
|
+
puts "#{capture.width}*#{capture.height}"
|
|
26
|
+
image=CamImage.new
|
|
27
|
+
for i in 1..10 do
|
|
28
|
+
capture.capture image
|
|
29
|
+
puts "Grabbed image #{i}...#{image.width}*#{image.height}"
|
|
30
|
+
end
|
|
31
|
+
|
data/inc/SHLWAPI.H
ADDED
|
@@ -0,0 +1,661 @@
|
|
|
1
|
+
|
|
2
|
+
/*****************************************************************************\
|
|
3
|
+
* *
|
|
4
|
+
* shlwapi.h - Interface for the Windows light-weight utility APIs *
|
|
5
|
+
* *
|
|
6
|
+
* Version 1.0 *
|
|
7
|
+
* *
|
|
8
|
+
* Copyright 1991-1998, Microsoft Corp. All rights reserved. *
|
|
9
|
+
* *
|
|
10
|
+
\*****************************************************************************/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
#ifndef _INC_SHLWAPI
|
|
14
|
+
#define _INC_SHLWAPI
|
|
15
|
+
|
|
16
|
+
#ifndef NOSHLWAPI
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
//
|
|
20
|
+
// Define API decoration for direct importing of DLL references.
|
|
21
|
+
//
|
|
22
|
+
#ifndef WINSHLWAPI
|
|
23
|
+
#if !defined(_SHLWAPI_)
|
|
24
|
+
#define LWSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
|
|
25
|
+
#define LWSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
|
|
26
|
+
#else
|
|
27
|
+
#define LWSTDAPI STDAPI
|
|
28
|
+
#define LWSTDAPI_(type) STDAPI_(type)
|
|
29
|
+
#endif
|
|
30
|
+
#endif // WINSHLWAPI
|
|
31
|
+
|
|
32
|
+
#ifdef _WIN32
|
|
33
|
+
#include <pshpack1.h>
|
|
34
|
+
#endif
|
|
35
|
+
|
|
36
|
+
#ifdef __cplusplus
|
|
37
|
+
extern "C" {
|
|
38
|
+
#endif
|
|
39
|
+
|
|
40
|
+
//
|
|
41
|
+
// Users of this header may define any number of these constants to avoid
|
|
42
|
+
// the definitions of each functional group.
|
|
43
|
+
//
|
|
44
|
+
// NO_SHLWAPI_STRFCNS String functions
|
|
45
|
+
// NO_SHLWAPI_PATH Path functions
|
|
46
|
+
// NO_SHLWAPI_REG Registry functions
|
|
47
|
+
// NO_SHLWAPI_STREAM Stream functions
|
|
48
|
+
// NO_SHLWAPI_GDI GDI helper functions
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
#ifndef NO_SHLWAPI_STRFCNS
|
|
52
|
+
//
|
|
53
|
+
//=============== String Routines ===================================
|
|
54
|
+
//
|
|
55
|
+
|
|
56
|
+
LWSTDAPI_(LPSTR) StrChrA(LPCSTR lpStart, WORD wMatch);
|
|
57
|
+
LWSTDAPI_(LPWSTR) StrChrW(LPCWSTR lpStart, WORD wMatch);
|
|
58
|
+
LWSTDAPI_(LPSTR) StrChrIA(LPCSTR lpStart, WORD wMatch);
|
|
59
|
+
LWSTDAPI_(LPWSTR) StrChrIW(LPCWSTR lpStart, WORD wMatch);
|
|
60
|
+
LWSTDAPI_(int) StrCmpNA(LPCSTR lpStr1, LPCSTR lpStr2, int nChar);
|
|
61
|
+
LWSTDAPI_(int) StrCmpNW(LPCWSTR lpStr1, LPCWSTR lpStr2, int nChar);
|
|
62
|
+
LWSTDAPI_(int) StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, int nChar);
|
|
63
|
+
LWSTDAPI_(int) StrCmpNIW(LPCWSTR lpStr1, LPCWSTR lpStr2, int nChar);
|
|
64
|
+
LWSTDAPI_(int) StrCSpnA(LPCSTR lpStr, LPCSTR lpSet);
|
|
65
|
+
LWSTDAPI_(int) StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet);
|
|
66
|
+
LWSTDAPI_(int) StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet);
|
|
67
|
+
LWSTDAPI_(int) StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet);
|
|
68
|
+
LWSTDAPI_(LPSTR) StrDupA(LPCSTR lpSrch);
|
|
69
|
+
LWSTDAPI_(LPWSTR) StrDupW(LPCWSTR lpSrch);
|
|
70
|
+
LWSTDAPI_(LPSTR) StrFormatByteSizeA(DWORD dw, LPSTR szBuf, UINT uiBufSize);
|
|
71
|
+
LWSTDAPI_(LPWSTR) StrFormatByteSizeW(LONGLONG qdw, LPWSTR szBuf, UINT uiBufSize);
|
|
72
|
+
LWSTDAPI_(int) StrFromTimeIntervalA(LPSTR pszOut, UINT cchMax, DWORD dwTimeMS, int digits);
|
|
73
|
+
LWSTDAPI_(int) StrFromTimeIntervalW(LPWSTR pszOut, UINT cchMax, DWORD dwTimeMS, int digits);
|
|
74
|
+
LWSTDAPI_(BOOL) StrIsIntlEqualA(BOOL fCaseSens, LPCSTR lpString1, LPCSTR lpString2, int nChar);
|
|
75
|
+
LWSTDAPI_(BOOL) StrIsIntlEqualW(BOOL fCaseSens, LPCWSTR lpString1, LPCWSTR lpString2, int nChar);
|
|
76
|
+
LWSTDAPI_(LPSTR) StrNCatA(LPSTR psz1, LPCSTR psz2, int cchMax);
|
|
77
|
+
LWSTDAPI_(LPWSTR) StrNCatW(LPWSTR psz1, LPCWSTR psz2, int cchMax);
|
|
78
|
+
LWSTDAPI_(LPSTR) StrPBrkA(LPCSTR psz, LPCSTR pszSet);
|
|
79
|
+
LWSTDAPI_(LPWSTR) StrPBrkW(LPCWSTR psz, LPCWSTR pszSet);
|
|
80
|
+
LWSTDAPI_(LPSTR) StrRChrA(LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch);
|
|
81
|
+
LWSTDAPI_(LPWSTR) StrRChrW(LPCWSTR lpStart, LPCWSTR lpEnd, WORD wMatch);
|
|
82
|
+
LWSTDAPI_(LPSTR) StrRChrIA(LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch);
|
|
83
|
+
LWSTDAPI_(LPWSTR) StrRChrIW(LPCWSTR lpStart, LPCWSTR lpEnd, WORD wMatch);
|
|
84
|
+
LWSTDAPI_(LPSTR) StrRStrIA(LPCSTR lpSource, LPCSTR lpLast, LPCSTR lpSrch);
|
|
85
|
+
LWSTDAPI_(LPWSTR) StrRStrIW(LPCWSTR lpSource, LPCWSTR lpLast, LPCWSTR lpSrch);
|
|
86
|
+
LWSTDAPI_(int) StrSpnA(LPCSTR psz, LPCSTR pszSet);
|
|
87
|
+
LWSTDAPI_(int) StrSpnW(LPCWSTR psz, LPCWSTR pszSet);
|
|
88
|
+
LWSTDAPI_(LPSTR) StrStrA(LPCSTR lpFirst, LPCSTR lpSrch);
|
|
89
|
+
LWSTDAPI_(LPWSTR) StrStrW(LPCWSTR lpFirst, LPCWSTR lpSrch);
|
|
90
|
+
LWSTDAPI_(LPSTR) StrStrIA(LPCSTR lpFirst, LPCSTR lpSrch);
|
|
91
|
+
LWSTDAPI_(LPWSTR) StrStrIW(LPCWSTR lpFirst, LPCWSTR lpSrch);
|
|
92
|
+
LWSTDAPI_(int) StrToIntA(LPCSTR lpSrc);
|
|
93
|
+
LWSTDAPI_(int) StrToIntW(LPCWSTR lpSrc);
|
|
94
|
+
LWSTDAPI_(BOOL) StrToIntExA(LPCSTR pszString, DWORD dwFlags, int FAR * piRet);
|
|
95
|
+
LWSTDAPI_(BOOL) StrToIntExW(LPCWSTR pszString, DWORD dwFlags, int FAR * piRet);
|
|
96
|
+
LWSTDAPI_(BOOL) StrTrimA(LPSTR psz, LPCSTR pszTrimChars);
|
|
97
|
+
LWSTDAPI_(BOOL) StrTrimW(LPWSTR psz, LPCWSTR pszTrimChars);
|
|
98
|
+
|
|
99
|
+
LWSTDAPI_(LPWSTR) StrCatW(LPWSTR psz1, LPCWSTR psz2);
|
|
100
|
+
LWSTDAPI_(int) StrCmpW(LPCWSTR psz1, LPCWSTR psz2);
|
|
101
|
+
LWSTDAPI_(int) StrCmpIW(LPCWSTR psz1, LPCWSTR psz2);
|
|
102
|
+
LWSTDAPI_(LPWSTR) StrCpyW(LPWSTR psz1, LPCWSTR psz2);
|
|
103
|
+
LWSTDAPI_(LPWSTR) StrCpyNW(LPWSTR psz1, LPCWSTR psz2, int cchMax);
|
|
104
|
+
|
|
105
|
+
LWSTDAPI_(BOOL) ChrCmpIA(WORD w1, WORD w2);
|
|
106
|
+
LWSTDAPI_(BOOL) ChrCmpIW(WORD w1, WORD w2);
|
|
107
|
+
|
|
108
|
+
#define StrIntlEqNA( s1, s2, nChar) StrIsIntlEqualA( TRUE, s1, s2, nChar)
|
|
109
|
+
#define StrIntlEqNW( s1, s2, nChar) StrIsIntlEqualW( TRUE, s1, s2, nChar)
|
|
110
|
+
#define StrIntlEqNIA(s1, s2, nChar) StrIsIntlEqualA(FALSE, s1, s2, nChar)
|
|
111
|
+
#define StrIntlEqNIW(s1, s2, nChar) StrIsIntlEqualW(FALSE, s1, s2, nChar)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
#ifdef UNICODE
|
|
115
|
+
#define StrChr StrChrW
|
|
116
|
+
#define StrRChr StrRChrW
|
|
117
|
+
#define StrChrI StrChrIW
|
|
118
|
+
#define StrRChrI StrRChrIW
|
|
119
|
+
#define StrCmpN StrCmpNW
|
|
120
|
+
#define StrCmpNI StrCmpNIW
|
|
121
|
+
#define StrStr StrStrW
|
|
122
|
+
#define StrStrI StrStrIW
|
|
123
|
+
#define StrDup StrDupW
|
|
124
|
+
#define StrRStrI StrRStrIW
|
|
125
|
+
#define StrCSpn StrCSpnW
|
|
126
|
+
#define StrCSpnI StrCSpnIW
|
|
127
|
+
#define StrSpn StrSpnW
|
|
128
|
+
#define StrToInt StrToIntW
|
|
129
|
+
#define StrPBrk StrPBrkW
|
|
130
|
+
#define StrToIntEx StrToIntExW
|
|
131
|
+
#define StrFromTimeInterval StrFromTimeIntervalW
|
|
132
|
+
#define StrIntlEqN StrIntlEqNW
|
|
133
|
+
#define StrIntlEqNI StrIntlEqNIW
|
|
134
|
+
#define StrFormatByteSize StrFormatByteSizeW
|
|
135
|
+
#define StrNCat StrNCatW
|
|
136
|
+
#define StrTrim StrTrimW
|
|
137
|
+
#define ChrCmpI ChrCmpIW
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
#else
|
|
141
|
+
#define StrChr StrChrA
|
|
142
|
+
#define StrRChr StrRChrA
|
|
143
|
+
#define StrChrI StrChrIA
|
|
144
|
+
#define StrRChrI StrRChrIA
|
|
145
|
+
#define StrCmpN StrCmpNA
|
|
146
|
+
#define StrCmpNI StrCmpNIA
|
|
147
|
+
#define StrStr StrStrA
|
|
148
|
+
#define StrStrI StrStrIA
|
|
149
|
+
#define StrDup StrDupA
|
|
150
|
+
#define StrRStrI StrRStrIA
|
|
151
|
+
#define StrCSpn StrCSpnA
|
|
152
|
+
#define StrCSpnI StrCSpnIA
|
|
153
|
+
#define StrSpn StrSpnA
|
|
154
|
+
#define StrToInt StrToIntA
|
|
155
|
+
#define StrPBrk StrPBrkA
|
|
156
|
+
#define StrToIntEx StrToIntExA
|
|
157
|
+
#define StrFromTimeInterval StrFromTimeIntervalA
|
|
158
|
+
#define StrIntlEqN StrIntlEqNA
|
|
159
|
+
#define StrIntlEqNI StrIntlEqNIA
|
|
160
|
+
#define StrFormatByteSize StrFormatByteSizeA
|
|
161
|
+
#define StrNCat StrNCatA
|
|
162
|
+
#define StrTrim StrTrimA
|
|
163
|
+
#define ChrCmpI ChrCmpIA
|
|
164
|
+
#endif
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
// Flags for StrToIntEx
|
|
168
|
+
#define STIF_DEFAULT 0x00000000L
|
|
169
|
+
#define STIF_SUPPORT_HEX 0x00000001L
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
#define StrCatA lstrcatA
|
|
173
|
+
#define StrCmpA lstrcmpA
|
|
174
|
+
#define StrCmpIA lstrcmpiA
|
|
175
|
+
#define StrCpyA lstrcpyA
|
|
176
|
+
#define StrCpyNA lstrcpynA
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
#define StrToLong StrToInt
|
|
180
|
+
#define StrNCmp StrCmpN
|
|
181
|
+
#define StrNCmpI StrCmpNI
|
|
182
|
+
#define StrNCpy StrCpyN
|
|
183
|
+
#define StrCatN StrNCat
|
|
184
|
+
|
|
185
|
+
#ifdef UNICODE
|
|
186
|
+
#define StrCat StrCatW
|
|
187
|
+
#define StrCmp StrCmpW
|
|
188
|
+
#define StrCmpI StrCmpIW
|
|
189
|
+
#define StrCpy StrCpyW
|
|
190
|
+
#define StrCpyN StrCpyNW
|
|
191
|
+
#else
|
|
192
|
+
#define StrCat lstrcatA
|
|
193
|
+
#define StrCmp lstrcmpA
|
|
194
|
+
#define StrCmpI lstrcmpiA
|
|
195
|
+
#define StrCpy lstrcpyA
|
|
196
|
+
#define StrCpyN lstrcpynA
|
|
197
|
+
#endif
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
#endif // NO_SHLWAPI_STRFCNS
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
#ifndef NO_SHLWAPI_PATH
|
|
205
|
+
|
|
206
|
+
//
|
|
207
|
+
//=============== Path Routines ===================================
|
|
208
|
+
//
|
|
209
|
+
|
|
210
|
+
LWSTDAPI_(LPSTR) PathAddBackslashA(LPSTR pszPath);
|
|
211
|
+
LWSTDAPI_(LPWSTR) PathAddBackslashW(LPWSTR pszPath);
|
|
212
|
+
LWSTDAPI_(BOOL) PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt);
|
|
213
|
+
LWSTDAPI_(BOOL) PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
|
|
214
|
+
LWSTDAPI_(BOOL) PathAppendA(LPSTR pszPath, LPCSTR pMore);
|
|
215
|
+
LWSTDAPI_(BOOL) PathAppendW(LPWSTR pszPath, LPCWSTR pMore);
|
|
216
|
+
LWSTDAPI_(LPSTR) PathBuildRootA(LPSTR szRoot, int iDrive);
|
|
217
|
+
LWSTDAPI_(LPWSTR) PathBuildRootW(LPWSTR szRoot, int iDrive);
|
|
218
|
+
LWSTDAPI_(BOOL) PathCanonicalizeA(LPSTR pszBuf, LPCSTR pszPath);
|
|
219
|
+
LWSTDAPI_(BOOL) PathCanonicalizeW(LPWSTR pszBuf, LPCWSTR pszPath);
|
|
220
|
+
LWSTDAPI_(LPSTR) PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile);
|
|
221
|
+
LWSTDAPI_(LPWSTR) PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile);
|
|
222
|
+
LWSTDAPI_(BOOL) PathCompactPathA(HDC hDC, LPSTR pszPath, UINT dx);
|
|
223
|
+
LWSTDAPI_(BOOL) PathCompactPathW(HDC hDC, LPWSTR pszPath, UINT dx);
|
|
224
|
+
LWSTDAPI_(BOOL) PathCompactPathExA(LPSTR pszOut, LPCSTR pszSrc, UINT cchMax, DWORD dwFlags);
|
|
225
|
+
LWSTDAPI_(BOOL) PathCompactPathExW(LPWSTR pszOut, LPCWSTR pszSrc, UINT cchMax, DWORD dwFlags);
|
|
226
|
+
LWSTDAPI_(int) PathCommonPrefixA(LPCSTR pszFile1, LPCSTR pszFile2, LPSTR achPath);
|
|
227
|
+
LWSTDAPI_(int) PathCommonPrefixW(LPCWSTR pszFile1, LPCWSTR pszFile2, LPWSTR achPath);
|
|
228
|
+
LWSTDAPI_(BOOL) PathFileExistsA(LPCSTR pszPath);
|
|
229
|
+
LWSTDAPI_(BOOL) PathFileExistsW(LPCWSTR pszPath);
|
|
230
|
+
LWSTDAPI_(LPSTR) PathFindExtensionA(LPCSTR pszPath);
|
|
231
|
+
LWSTDAPI_(LPWSTR) PathFindExtensionW(LPCWSTR pszPath);
|
|
232
|
+
LWSTDAPI_(LPSTR) PathFindFileNameA(LPCSTR pszPath);
|
|
233
|
+
LWSTDAPI_(LPWSTR) PathFindFileNameW(LPCWSTR pszPath);
|
|
234
|
+
LWSTDAPI_(LPSTR) PathFindNextComponentA(LPCSTR pszPath);
|
|
235
|
+
LWSTDAPI_(LPWSTR) PathFindNextComponentW(LPCWSTR pszPath);
|
|
236
|
+
LWSTDAPI_(BOOL) PathFindOnPathA(LPSTR pszPath, LPCSTR * ppszOtherDirs);
|
|
237
|
+
LWSTDAPI_(BOOL) PathFindOnPathW(LPWSTR pszPath, LPCWSTR * ppszOtherDirs);
|
|
238
|
+
LWSTDAPI_(LPSTR) PathGetArgsA(LPCSTR pszPath);
|
|
239
|
+
LWSTDAPI_(LPWSTR) PathGetArgsW(LPCWSTR pszPath);
|
|
240
|
+
|
|
241
|
+
LWSTDAPI_(UINT) PathGetCharTypeA(UCHAR ch);
|
|
242
|
+
LWSTDAPI_(UINT) PathGetCharTypeW(WCHAR ch);
|
|
243
|
+
|
|
244
|
+
// Return flags for PathGetCharType
|
|
245
|
+
#define GCT_INVALID 0x0000
|
|
246
|
+
#define GCT_LFNCHAR 0x0001
|
|
247
|
+
#define GCT_SHORTCHAR 0x0002
|
|
248
|
+
#define GCT_WILD 0x0004
|
|
249
|
+
#define GCT_SEPARATOR 0x0008
|
|
250
|
+
|
|
251
|
+
LWSTDAPI_(int) PathGetDriveNumberA(LPCSTR pszPath);
|
|
252
|
+
LWSTDAPI_(int) PathGetDriveNumberW(LPCWSTR pszPath);
|
|
253
|
+
LWSTDAPI_(BOOL) PathIsDirectoryA(LPCSTR pszPath);
|
|
254
|
+
LWSTDAPI_(BOOL) PathIsDirectoryW(LPCWSTR pszPath);
|
|
255
|
+
LWSTDAPI_(BOOL) PathIsFileSpecA(LPCSTR pszPath);
|
|
256
|
+
LWSTDAPI_(BOOL) PathIsFileSpecW(LPCWSTR pszPath);
|
|
257
|
+
LWSTDAPI_(BOOL) PathIsPrefixA(LPCSTR pszPrefix, LPCSTR pszPath);
|
|
258
|
+
LWSTDAPI_(BOOL) PathIsPrefixW(LPCWSTR pszPrefix, LPCWSTR pszPath);
|
|
259
|
+
LWSTDAPI_(BOOL) PathIsRelativeA(LPCSTR pszPath);
|
|
260
|
+
LWSTDAPI_(BOOL) PathIsRelativeW(LPCWSTR pszPath);
|
|
261
|
+
LWSTDAPI_(BOOL) PathIsRootA(LPCSTR pszPath);
|
|
262
|
+
LWSTDAPI_(BOOL) PathIsRootW(LPCWSTR pszPath);
|
|
263
|
+
LWSTDAPI_(BOOL) PathIsSameRootA(LPCSTR pszPath1, LPCSTR pszPath2);
|
|
264
|
+
LWSTDAPI_(BOOL) PathIsSameRootW(LPCWSTR pszPath1, LPCWSTR pszPath2);
|
|
265
|
+
LWSTDAPI_(BOOL) PathIsUNCA(LPCSTR pszPath);
|
|
266
|
+
LWSTDAPI_(BOOL) PathIsUNCW(LPCWSTR pszPath);
|
|
267
|
+
LWSTDAPI_(BOOL) PathIsUNCServerA(LPCSTR pszPath);
|
|
268
|
+
LWSTDAPI_(BOOL) PathIsUNCServerW(LPCWSTR pszPath);
|
|
269
|
+
LWSTDAPI_(BOOL) PathIsUNCServerShareA(LPCSTR pszPath);
|
|
270
|
+
LWSTDAPI_(BOOL) PathIsUNCServerShareW(LPCWSTR pszPath);
|
|
271
|
+
LWSTDAPI_(BOOL) PathIsContentTypeA(LPCSTR pszPath, LPCSTR pszContentType);
|
|
272
|
+
LWSTDAPI_(BOOL) PathIsContentTypeW(LPCWSTR pszPath, LPCWSTR pszContentType);
|
|
273
|
+
LWSTDAPI_(BOOL) PathIsURLA(LPCSTR pszPath);
|
|
274
|
+
LWSTDAPI_(BOOL) PathIsURLW(LPCWSTR pszPath);
|
|
275
|
+
LWSTDAPI_(BOOL) PathMakePrettyA(LPSTR pszPath);
|
|
276
|
+
LWSTDAPI_(BOOL) PathMakePrettyW(LPWSTR pszPath);
|
|
277
|
+
LWSTDAPI_(BOOL) PathMatchSpecA(LPCSTR pszFile, LPCSTR pszSpec);
|
|
278
|
+
LWSTDAPI_(BOOL) PathMatchSpecW(LPCWSTR pszFile, LPCWSTR pszSpec);
|
|
279
|
+
LWSTDAPI_(int) PathParseIconLocationA(LPSTR pszIconFile);
|
|
280
|
+
LWSTDAPI_(int) PathParseIconLocationW(LPWSTR pszIconFile);
|
|
281
|
+
LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz);
|
|
282
|
+
LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);
|
|
283
|
+
LWSTDAPI_(BOOL) PathRelativePathToA(LPSTR pszPath, LPCSTR pszFrom, DWORD dwAttrFrom, LPCSTR pszTo, DWORD dwAttrTo);
|
|
284
|
+
LWSTDAPI_(BOOL) PathRelativePathToW(LPWSTR pszPath, LPCWSTR pszFrom, DWORD dwAttrFrom, LPCWSTR pszTo, DWORD dwAttrTo);
|
|
285
|
+
LWSTDAPI_(void) PathRemoveArgsA(LPSTR pszPath);
|
|
286
|
+
LWSTDAPI_(void) PathRemoveArgsW(LPWSTR pszPath);
|
|
287
|
+
LWSTDAPI_(LPSTR) PathRemoveBackslashA(LPSTR pszPath);
|
|
288
|
+
LWSTDAPI_(LPWSTR) PathRemoveBackslashW(LPWSTR pszPath);
|
|
289
|
+
LWSTDAPI_(void) PathRemoveBlanksA(LPSTR pszPath);
|
|
290
|
+
LWSTDAPI_(void) PathRemoveBlanksW(LPWSTR pszPath);
|
|
291
|
+
LWSTDAPI_(void) PathRemoveExtensionA(LPSTR pszPath);
|
|
292
|
+
LWSTDAPI_(void) PathRemoveExtensionW(LPWSTR pszPath);
|
|
293
|
+
LWSTDAPI_(BOOL) PathRemoveFileSpecA(LPSTR pszPath);
|
|
294
|
+
LWSTDAPI_(BOOL) PathRemoveFileSpecW(LPWSTR pszPath);
|
|
295
|
+
LWSTDAPI_(BOOL) PathRenameExtensionA(LPSTR pszPath, LPCSTR pszExt);
|
|
296
|
+
LWSTDAPI_(BOOL) PathRenameExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
|
|
297
|
+
LWSTDAPI_(BOOL) PathSearchAndQualifyA(LPCSTR pszPath, LPSTR pszBuf, UINT cchBuf);
|
|
298
|
+
LWSTDAPI_(BOOL) PathSearchAndQualifyW(LPCWSTR pszPath, LPWSTR pszBuf, UINT cchBuf);
|
|
299
|
+
LWSTDAPI_(void) PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath);
|
|
300
|
+
LWSTDAPI_(void) PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath);
|
|
301
|
+
LWSTDAPI_(LPSTR) PathSkipRootA(LPCSTR pszPath);
|
|
302
|
+
LWSTDAPI_(LPWSTR) PathSkipRootW(LPCWSTR pszPath);
|
|
303
|
+
LWSTDAPI_(void) PathStripPathA(LPSTR pszPath);
|
|
304
|
+
LWSTDAPI_(void) PathStripPathW(LPWSTR pszPath);
|
|
305
|
+
LWSTDAPI_(BOOL) PathStripToRootA(LPSTR pszPath);
|
|
306
|
+
LWSTDAPI_(BOOL) PathStripToRootW(LPWSTR pszPath);
|
|
307
|
+
LWSTDAPI_(void) PathUnquoteSpacesA(LPSTR lpsz);
|
|
308
|
+
LWSTDAPI_(void) PathUnquoteSpacesW(LPWSTR lpsz);
|
|
309
|
+
LWSTDAPI_(BOOL) PathMakeSystemFolderA(LPCSTR pszPath);
|
|
310
|
+
LWSTDAPI_(BOOL) PathMakeSystemFolderW(LPCWSTR pszPath);
|
|
311
|
+
LWSTDAPI_(BOOL) PathUnmakeSystemFolderA(LPCSTR pszPath);
|
|
312
|
+
LWSTDAPI_(BOOL) PathUnmakeSystemFolderW(LPCWSTR pszPath);
|
|
313
|
+
LWSTDAPI_(BOOL) PathIsSystemFolderA(LPCSTR pszPath, DWORD dwAttrb);
|
|
314
|
+
LWSTDAPI_(BOOL) PathIsSystemFolderW(LPCWSTR pszPath, DWORD dwAttrb);
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
#ifdef UNICODE
|
|
318
|
+
#define PathAddBackslash PathAddBackslashW
|
|
319
|
+
#define PathAddExtension PathAddExtensionW
|
|
320
|
+
#define PathAppend PathAppendW
|
|
321
|
+
#define PathBuildRoot PathBuildRootW
|
|
322
|
+
#define PathCanonicalize PathCanonicalizeW
|
|
323
|
+
#define PathCombine PathCombineW
|
|
324
|
+
#define PathCompactPath PathCompactPathW
|
|
325
|
+
#define PathCompactPathEx PathCompactPathExW
|
|
326
|
+
#define PathCommonPrefix PathCommonPrefixW
|
|
327
|
+
#define PathFileExists PathFileExistsW
|
|
328
|
+
#define PathFindExtension PathFindExtensionW
|
|
329
|
+
#define PathFindFileName PathFindFileNameW
|
|
330
|
+
#define PathFindNextComponent PathFindNextComponentW
|
|
331
|
+
#define PathFindOnPath PathFindOnPathW
|
|
332
|
+
#define PathGetArgs PathGetArgsW
|
|
333
|
+
#define PathGetCharType PathGetCharTypeW
|
|
334
|
+
#define PathGetDriveNumber PathGetDriveNumberW
|
|
335
|
+
#define PathIsDirectory PathIsDirectoryW
|
|
336
|
+
#define PathIsFileSpec PathIsFileSpecW
|
|
337
|
+
#define PathIsPrefix PathIsPrefixW
|
|
338
|
+
#define PathIsRelative PathIsRelativeW
|
|
339
|
+
#define PathIsRoot PathIsRootW
|
|
340
|
+
#define PathIsSameRoot PathIsSameRootW
|
|
341
|
+
#define PathIsUNC PathIsUNCW
|
|
342
|
+
#define PathIsUNCServer PathIsUNCServerW
|
|
343
|
+
#define PathIsUNCServerShare PathIsUNCServerShareW
|
|
344
|
+
#define PathIsContentType PathIsContentTypeW
|
|
345
|
+
#define PathIsHTMLFile PathIsHTMLFileW
|
|
346
|
+
#define PathIsURL PathIsURLW
|
|
347
|
+
#define PathMakePretty PathMakePrettyW
|
|
348
|
+
#define PathMatchSpec PathMatchSpecW
|
|
349
|
+
#define PathParseIconLocation PathParseIconLocationW
|
|
350
|
+
#define PathQuoteSpaces PathQuoteSpacesW
|
|
351
|
+
#define PathRelativePathTo PathRelativePathToW
|
|
352
|
+
#define PathRemoveArgs PathRemoveArgsW
|
|
353
|
+
#define PathRemoveBackslash PathRemoveBackslashW
|
|
354
|
+
#define PathRemoveBlanks PathRemoveBlanksW
|
|
355
|
+
#define PathRemoveExtension PathRemoveExtensionW
|
|
356
|
+
#define PathRemoveFileSpec PathRemoveFileSpecW
|
|
357
|
+
#define PathRenameExtension PathRenameExtensionW
|
|
358
|
+
#define PathSearchAndQualify PathSearchAndQualifyW
|
|
359
|
+
#define PathSetDlgItemPath PathSetDlgItemPathW
|
|
360
|
+
#define PathSkipRoot PathSkipRootW
|
|
361
|
+
#define PathStripPath PathStripPathW
|
|
362
|
+
#define PathStripToRoot PathStripToRootW
|
|
363
|
+
#define PathUnquoteSpaces PathUnquoteSpacesW
|
|
364
|
+
#define PathMakeSystemFolder PathMakeSystemFolderW
|
|
365
|
+
#define PathUnmakeSystemFolder PathUnmakeSystemFolderW
|
|
366
|
+
#define PathIsSystemFolder PathIsSystemFolderW
|
|
367
|
+
#else
|
|
368
|
+
#define PathAddBackslash PathAddBackslashA
|
|
369
|
+
#define PathAddExtension PathAddExtensionA
|
|
370
|
+
#define PathAppend PathAppendA
|
|
371
|
+
#define PathBuildRoot PathBuildRootA
|
|
372
|
+
#define PathCanonicalize PathCanonicalizeA
|
|
373
|
+
#define PathCombine PathCombineA
|
|
374
|
+
#define PathCompactPath PathCompactPathA
|
|
375
|
+
#define PathCompactPathEx PathCompactPathExA
|
|
376
|
+
#define PathCommonPrefix PathCommonPrefixA
|
|
377
|
+
#define PathFileExists PathFileExistsA
|
|
378
|
+
#define PathFindExtension PathFindExtensionA
|
|
379
|
+
#define PathFindFileName PathFindFileNameA
|
|
380
|
+
#define PathFindNextComponent PathFindNextComponentA
|
|
381
|
+
#define PathFindOnPath PathFindOnPathA
|
|
382
|
+
#define PathGetArgs PathGetArgsA
|
|
383
|
+
#define PathGetCharType PathGetCharTypeA
|
|
384
|
+
#define PathGetDriveNumber PathGetDriveNumberA
|
|
385
|
+
#define PathIsDirectory PathIsDirectoryA
|
|
386
|
+
#define PathIsFileSpec PathIsFileSpecA
|
|
387
|
+
#define PathIsPrefix PathIsPrefixA
|
|
388
|
+
#define PathIsRelative PathIsRelativeA
|
|
389
|
+
#define PathIsRoot PathIsRootA
|
|
390
|
+
#define PathIsSameRoot PathIsSameRootA
|
|
391
|
+
#define PathIsUNC PathIsUNCA
|
|
392
|
+
#define PathIsUNCServer PathIsUNCServerA
|
|
393
|
+
#define PathIsUNCServerShare PathIsUNCServerShareA
|
|
394
|
+
#define PathIsContentType PathIsContentTypeA
|
|
395
|
+
#define PathIsHTMLFile PathIsHTMLFileA
|
|
396
|
+
#define PathIsURL PathIsURLA
|
|
397
|
+
#define PathMakePretty PathMakePrettyA
|
|
398
|
+
#define PathMatchSpec PathMatchSpecA
|
|
399
|
+
#define PathParseIconLocation PathParseIconLocationA
|
|
400
|
+
#define PathQuoteSpaces PathQuoteSpacesA
|
|
401
|
+
#define PathRelativePathTo PathRelativePathToA
|
|
402
|
+
#define PathRemoveArgs PathRemoveArgsA
|
|
403
|
+
#define PathRemoveBackslash PathRemoveBackslashA
|
|
404
|
+
#define PathRemoveBlanks PathRemoveBlanksA
|
|
405
|
+
#define PathRemoveExtension PathRemoveExtensionA
|
|
406
|
+
#define PathRemoveFileSpec PathRemoveFileSpecA
|
|
407
|
+
#define PathRenameExtension PathRenameExtensionA
|
|
408
|
+
#define PathSearchAndQualify PathSearchAndQualifyA
|
|
409
|
+
#define PathSetDlgItemPath PathSetDlgItemPathA
|
|
410
|
+
#define PathSkipRoot PathSkipRootA
|
|
411
|
+
#define PathStripPath PathStripPathA
|
|
412
|
+
#define PathStripToRoot PathStripToRootA
|
|
413
|
+
#define PathUnquoteSpaces PathUnquoteSpacesA
|
|
414
|
+
#define PathMakeSystemFolder PathMakeSystemFolderA
|
|
415
|
+
#define PathUnmakeSystemFolder PathUnmakeSystemFolderA
|
|
416
|
+
#define PathIsSystemFolder PathIsSystemFolderA
|
|
417
|
+
#endif
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
#endif // NO_SHLWAPI_PATH
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
#ifndef NO_SHLWAPI_REG
|
|
425
|
+
//
|
|
426
|
+
//=============== Registry Routines ===================================
|
|
427
|
+
//
|
|
428
|
+
|
|
429
|
+
// SHDeleteEmptyKey mimics RegDeleteKey as it behaves on NT.
|
|
430
|
+
// SHDeleteKey mimics RegDeleteKey as it behaves on Win95.
|
|
431
|
+
|
|
432
|
+
LWSTDAPI_(DWORD) SHDeleteEmptyKeyA(HKEY hkey, LPCSTR pszSubKey);
|
|
433
|
+
LWSTDAPI_(DWORD) SHDeleteEmptyKeyW(HKEY hkey, LPCWSTR pszSubKey);
|
|
434
|
+
LWSTDAPI_(DWORD) SHDeleteKeyA(HKEY hkey, LPCSTR pszSubKey);
|
|
435
|
+
LWSTDAPI_(DWORD) SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey);
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
// These functions open the key, get/set/delete the value, then close
|
|
439
|
+
// the key.
|
|
440
|
+
|
|
441
|
+
LWSTDAPI_(DWORD) SHDeleteValueA(HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue);
|
|
442
|
+
LWSTDAPI_(DWORD) SHDeleteValueW(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue);
|
|
443
|
+
LWSTDAPI_(DWORD) SHGetValueA(HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
444
|
+
LWSTDAPI_(DWORD) SHGetValueW(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
445
|
+
LWSTDAPI_(DWORD) SHSetValueA(HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, LPCVOID pvData, DWORD cbData);
|
|
446
|
+
LWSTDAPI_(DWORD) SHSetValueW(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwType, LPCVOID pvData, DWORD cbData);
|
|
447
|
+
|
|
448
|
+
// These functions work just like RegQueryValueEx, except if the
|
|
449
|
+
// data type is REG_EXPAND_SZ, then these will go ahead and expand
|
|
450
|
+
// out the string. *pdwType will always be massaged to REG_SZ
|
|
451
|
+
// if this happens. REG_SZ values are also guaranteed to be null
|
|
452
|
+
// terminated.
|
|
453
|
+
|
|
454
|
+
LWSTDAPI_(DWORD) SHQueryValueExA(HKEY hkey, LPCSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
455
|
+
LWSTDAPI_(DWORD) SHQueryValueExW(HKEY hkey, LPCWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
456
|
+
|
|
457
|
+
// Enumeration functions support.
|
|
458
|
+
|
|
459
|
+
LWSTDAPI_(LONG) SHEnumKeyExA(HKEY hkey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchName);
|
|
460
|
+
LWSTDAPI_(LONG) SHEnumKeyExW(HKEY hkey, DWORD dwIndex, LPWSTR pszName, LPDWORD pcchName);
|
|
461
|
+
LWSTDAPI_(LONG) SHEnumValueA(HKEY hkey, DWORD dwIndex, LPSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
462
|
+
LWSTDAPI_(LONG) SHEnumValueW(HKEY hkey, DWORD dwIndex, LPWSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
|
|
463
|
+
LWSTDAPI_(LONG) SHQueryInfoKeyA(HKEY hkey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen);
|
|
464
|
+
LWSTDAPI_(LONG) SHQueryInfoKeyW(HKEY hkey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen);
|
|
465
|
+
|
|
466
|
+
#ifdef UNICODE
|
|
467
|
+
#define SHDeleteEmptyKey SHDeleteEmptyKeyW
|
|
468
|
+
#define SHDeleteKey SHDeleteKeyW
|
|
469
|
+
#define SHDeleteValue SHDeleteValueW
|
|
470
|
+
#define SHGetValue SHGetValueW
|
|
471
|
+
#define SHSetValue SHSetValueW
|
|
472
|
+
#define SHQueryValueEx SHQueryValueExW
|
|
473
|
+
#define SHEnumKeyEx SHEnumKeyExW
|
|
474
|
+
#define SHEnumValue SHEnumValueW
|
|
475
|
+
#define SHQueryInfoKey SHQueryInfoKeyW
|
|
476
|
+
#else
|
|
477
|
+
#define SHDeleteEmptyKey SHDeleteEmptyKeyA
|
|
478
|
+
#define SHDeleteKey SHDeleteKeyA
|
|
479
|
+
#define SHDeleteValue SHDeleteValueA
|
|
480
|
+
#define SHGetValue SHGetValueA
|
|
481
|
+
#define SHSetValue SHSetValueA
|
|
482
|
+
#define SHQueryValueEx SHQueryValueExA
|
|
483
|
+
#define SHEnumKeyEx SHEnumKeyExA
|
|
484
|
+
#define SHEnumValue SHEnumValueA
|
|
485
|
+
#define SHQueryInfoKey SHQueryInfoKeyA
|
|
486
|
+
#endif
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
//////////////////////////////////////////////
|
|
490
|
+
// User Specific Registry Access Functions
|
|
491
|
+
//////////////////////////////////////////////
|
|
492
|
+
|
|
493
|
+
//
|
|
494
|
+
// Type definitions.
|
|
495
|
+
//
|
|
496
|
+
|
|
497
|
+
typedef enum
|
|
498
|
+
{
|
|
499
|
+
SHREGDEL_DEFAULT = 0x00000000, // Delete's HKCU, or HKLM if HKCU is not found.
|
|
500
|
+
SHREGDEL_HKCU = 0x00000001, // Delete HKCU only
|
|
501
|
+
SHREGDEL_HKLM = 0x00000010, // Delete HKLM only.
|
|
502
|
+
SHREGDEL_BOTH = 0x00000011, // Delete both HKCU and HKLM.
|
|
503
|
+
} SHREGDEL_FLAGS;
|
|
504
|
+
|
|
505
|
+
typedef enum
|
|
506
|
+
{
|
|
507
|
+
SHREGENUM_DEFAULT = 0x00000000, // Enumerates HKCU or HKLM if not found.
|
|
508
|
+
SHREGENUM_HKCU = 0x00000001, // Enumerates HKCU only
|
|
509
|
+
SHREGENUM_HKLM = 0x00000010, // Enumerates HKLM only.
|
|
510
|
+
SHREGENUM_BOTH = 0x00000011, // Enumerates both HKCU and HKLM without duplicates.
|
|
511
|
+
// This option is NYI.
|
|
512
|
+
} SHREGENUM_FLAGS;
|
|
513
|
+
|
|
514
|
+
#define SHREGSET_HKCU 0x00000001 // Write to HKCU if empty.
|
|
515
|
+
#define SHREGSET_FORCE_HKCU 0x00000002 // Write to HKCU.
|
|
516
|
+
#define SHREGSET_HKLM 0x00000004 // Write to HKLM if empty.
|
|
517
|
+
#define SHREGSET_FORCE_HKLM 0x00000008 // Write to HKLM.
|
|
518
|
+
#define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM) // Default is SHREGSET_FORCE_HKCU | SHREGSET_HKLM.
|
|
519
|
+
|
|
520
|
+
typedef HANDLE HUSKEY; // HUSKEY is a Handle to a User Specific KEY.
|
|
521
|
+
typedef HUSKEY *PHUSKEY;
|
|
522
|
+
|
|
523
|
+
LWSTDAPI_(LONG) SHRegCreateUSKeyA(LPCSTR pszPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, DWORD dwFlags);
|
|
524
|
+
LWSTDAPI_(LONG) SHRegCreateUSKeyW(LPCWSTR pwzPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, DWORD dwFlags);
|
|
525
|
+
LWSTDAPI_(LONG) SHRegOpenUSKeyA(LPCSTR pszPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU);
|
|
526
|
+
LWSTDAPI_(LONG) SHRegOpenUSKeyW(LPCWSTR pwzPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU);
|
|
527
|
+
LWSTDAPI_(LONG) SHRegQueryUSValueA(HUSKEY hUSKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize);
|
|
528
|
+
LWSTDAPI_(LONG) SHRegQueryUSValueW(HUSKEY hUSKey, LPCWSTR pwzValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize);
|
|
529
|
+
LWSTDAPI_(LONG) SHRegWriteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags);
|
|
530
|
+
LWSTDAPI_(LONG) SHRegWriteUSValueW(HUSKEY hUSKey, LPCWSTR pwzValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags);
|
|
531
|
+
LWSTDAPI_(LONG) SHRegDeleteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, SHREGDEL_FLAGS delRegFlags);
|
|
532
|
+
LWSTDAPI_(LONG) SHRegDeleteEmptyUSKeyW(HUSKEY hUSKey, LPCWSTR pwzSubKey, SHREGDEL_FLAGS delRegFlags);
|
|
533
|
+
LWSTDAPI_(LONG) SHRegDeleteEmptyUSKeyA(HUSKEY hUSKey, LPCSTR pszSubKey, SHREGDEL_FLAGS delRegFlags);
|
|
534
|
+
LWSTDAPI_(LONG) SHRegDeleteUSValueW(HUSKEY hUSKey, LPCWSTR pwzValue, SHREGDEL_FLAGS delRegFlags);
|
|
535
|
+
LWSTDAPI_(LONG) SHRegEnumUSKeyA(HUSKEY hUSKey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchName, SHREGENUM_FLAGS enumRegFlags);
|
|
536
|
+
LWSTDAPI_(LONG) SHRegEnumUSKeyW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pwzName, LPDWORD pcchName, SHREGENUM_FLAGS enumRegFlags);
|
|
537
|
+
LWSTDAPI_(LONG) SHRegEnumUSValueA(HUSKEY hUSkey, DWORD dwIndex, LPSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags);
|
|
538
|
+
LWSTDAPI_(LONG) SHRegEnumUSValueW(HUSKEY hUSkey, DWORD dwIndex, LPWSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags);
|
|
539
|
+
LWSTDAPI_(LONG) SHRegQueryInfoUSKeyA(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags);
|
|
540
|
+
LWSTDAPI_(LONG) SHRegQueryInfoUSKeyW(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags);
|
|
541
|
+
LWSTDAPI_(LONG) SHRegCloseUSKey(HUSKEY hUSKey);
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
// These calls are equal to an SHRegOpenUSKey, SHRegQueryUSValue, and then a SHRegCloseUSKey.
|
|
545
|
+
LWSTDAPI_(LONG) SHRegGetUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize);
|
|
546
|
+
LWSTDAPI_(LONG) SHRegGetUSValueW(LPCWSTR pwzSubKey, LPCWSTR pwzValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize);
|
|
547
|
+
LWSTDAPI_(LONG) SHRegSetUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags);
|
|
548
|
+
LWSTDAPI_(LONG) SHRegSetUSValueW(LPCWSTR pwzSubKey, LPCWSTR pwzValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags);
|
|
549
|
+
|
|
550
|
+
#ifdef UNICODE
|
|
551
|
+
#define SHRegCreateUSKey SHRegCreateUSKeyW
|
|
552
|
+
#define SHRegOpenUSKey SHRegOpenUSKeyW
|
|
553
|
+
#define SHRegQueryUSValue SHRegQueryUSValueW
|
|
554
|
+
#define SHRegWriteUSValue SHRegWriteUSValueW
|
|
555
|
+
#define SHRegDeleteUSValue SHRegDeleteUSValueW
|
|
556
|
+
#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyW
|
|
557
|
+
#define SHRegEnumUSKey SHRegEnumUSKeyW
|
|
558
|
+
#define SHRegEnumUSValue SHRegEnumUSValueW
|
|
559
|
+
#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyW
|
|
560
|
+
#define SHRegGetUSValue SHRegGetUSValueW
|
|
561
|
+
#define SHRegSetUSValue SHRegSetUSValueW
|
|
562
|
+
#else
|
|
563
|
+
#define SHRegCreateUSKey SHRegCreateUSKeyA
|
|
564
|
+
#define SHRegOpenUSKey SHRegOpenUSKeyA
|
|
565
|
+
#define SHRegQueryUSValue SHRegQueryUSValueA
|
|
566
|
+
#define SHRegWriteUSValue SHRegWriteUSValueA
|
|
567
|
+
#define SHRegDeleteUSValue SHRegDeleteUSValueA
|
|
568
|
+
#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyA
|
|
569
|
+
#define SHRegEnumUSKey SHRegEnumUSKeyA
|
|
570
|
+
#define SHRegEnumUSValue SHRegEnumUSValueA
|
|
571
|
+
#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyA
|
|
572
|
+
#define SHRegGetUSValue SHRegGetUSValueA
|
|
573
|
+
#define SHRegSetUSValue SHRegSetUSValueA
|
|
574
|
+
#endif
|
|
575
|
+
|
|
576
|
+
LWSTDAPI_(BOOL) SHRegGetBoolUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault);
|
|
577
|
+
LWSTDAPI_(BOOL) SHRegGetBoolUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault);
|
|
578
|
+
|
|
579
|
+
#ifdef UNICODE
|
|
580
|
+
#define SHRegGetBoolUSValue SHRegGetBoolUSValueW
|
|
581
|
+
#else
|
|
582
|
+
#define SHRegGetBoolUSValue SHRegGetBoolUSValueA
|
|
583
|
+
#endif
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
#endif // NO_SHLWAPI_REG
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
#ifndef NO_SHLWAPI_STREAM
|
|
591
|
+
//
|
|
592
|
+
//=============== Stream Routines ===================================
|
|
593
|
+
//
|
|
594
|
+
|
|
595
|
+
#ifdef __IStream_INTERFACE_DEFINED__
|
|
596
|
+
LWSTDAPI_(IStream *) SHOpenRegStreamA(HKEY hkey, LPCSTR pszSubkey, LPCSTR pszValue, DWORD grfMode);
|
|
597
|
+
LWSTDAPI_(IStream *) SHOpenRegStreamW(HKEY hkey, LPCWSTR pszSubkey, LPCWSTR pszValue, DWORD grfMode);
|
|
598
|
+
#ifdef UNICODE
|
|
599
|
+
#define SHOpenRegStream SHOpenRegStreamW
|
|
600
|
+
#else
|
|
601
|
+
#define SHOpenRegStream SHOpenRegStreamA
|
|
602
|
+
#endif // !UNICODE
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
#endif
|
|
606
|
+
|
|
607
|
+
#endif // NO_SHLWAPI_STREAM
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
#ifndef NO_SHLWAPI_GDI
|
|
612
|
+
//
|
|
613
|
+
//====== GDI helper functions ================================================
|
|
614
|
+
//
|
|
615
|
+
|
|
616
|
+
LWSTDAPI_(HPALETTE) SHCreateShellPalette(HDC hdc);
|
|
617
|
+
|
|
618
|
+
#endif // NO_SHLWAPI_GDI
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
//
|
|
622
|
+
//====== DllGetVersion =======================================================
|
|
623
|
+
//
|
|
624
|
+
|
|
625
|
+
typedef struct _DllVersionInfo
|
|
626
|
+
{
|
|
627
|
+
DWORD cbSize;
|
|
628
|
+
DWORD dwMajorVersion; // Major version
|
|
629
|
+
DWORD dwMinorVersion; // Minor version
|
|
630
|
+
DWORD dwBuildNumber; // Build number
|
|
631
|
+
DWORD dwPlatformID; // DLLVER_PLATFORM_*
|
|
632
|
+
} DLLVERSIONINFO;
|
|
633
|
+
|
|
634
|
+
// Platform IDs for DLLVERSIONINFO
|
|
635
|
+
#define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 95
|
|
636
|
+
#define DLLVER_PLATFORM_NT 0x00000002 // Windows NT
|
|
637
|
+
|
|
638
|
+
//
|
|
639
|
+
// The caller should always GetProcAddress("DllGetVersion"), not
|
|
640
|
+
// implicitly link to it.
|
|
641
|
+
//
|
|
642
|
+
|
|
643
|
+
typedef HRESULT (CALLBACK* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
|
|
644
|
+
|
|
645
|
+
// DllInstall (to be implemented by self-installing DLLs)
|
|
646
|
+
STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine);
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
#ifdef __cplusplus
|
|
650
|
+
}
|
|
651
|
+
#endif
|
|
652
|
+
|
|
653
|
+
#ifdef _WIN32
|
|
654
|
+
#include <poppack.h>
|
|
655
|
+
#endif
|
|
656
|
+
|
|
657
|
+
#endif
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
#endif // _INC_SHLWAPI
|
|
661
|
+
|