ReactOS 0.4.16-dev-981-g80eb313
propsys_main.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "rpcproxy.h"
#include "propsys.h"
#include "wine/debug.h"
#include "propsys_private.h"
Include dependency graph for propsys_main.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (propsys)
 
static HRESULT WINAPI ClassFactory_QueryInterface (IClassFactory *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ClassFactory_AddRef (IClassFactory *iface)
 
static ULONG WINAPI ClassFactory_Release (IClassFactory *iface)
 
static HRESULT WINAPI ClassFactory_LockServer (IClassFactory *iface, BOOL fLock)
 
static HRESULT WINAPI InMemoryPropertyStoreFactory_CreateInstance (IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
static HRESULT WINAPI propsys_QueryInterface (IPropertySystem *iface, REFIID riid, void **obj)
 
static ULONG WINAPI propsys_AddRef (IPropertySystem *iface)
 
static ULONG WINAPI propsys_Release (IPropertySystem *iface)
 
static HRESULT WINAPI propsys_GetPropertyDescription (IPropertySystem *iface, REFPROPERTYKEY propkey, REFIID riid, void **ppv)
 
static HRESULT WINAPI propsys_GetPropertyDescriptionByName (IPropertySystem *iface, LPCWSTR canonical_name, REFIID riid, void **ppv)
 
static HRESULT WINAPI propsys_GetPropertyDescriptionListFromString (IPropertySystem *iface, LPCWSTR proplist, REFIID riid, void **ppv)
 
static HRESULT WINAPI propsys_EnumeratePropertyDescriptions (IPropertySystem *iface, PROPDESC_ENUMFILTER filter, REFIID riid, void **ppv)
 
static HRESULT WINAPI propsys_FormatForDisplay (IPropertySystem *iface, REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags, LPWSTR dest, DWORD destlen)
 
static HRESULT WINAPI propsys_FormatForDisplayAlloc (IPropertySystem *iface, REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags, LPWSTR *text)
 
static HRESULT WINAPI propsys_RegisterPropertySchema (IPropertySystem *iface, LPCWSTR path)
 
static HRESULT WINAPI propsys_UnregisterPropertySchema (IPropertySystem *iface, LPCWSTR path)
 
static HRESULT WINAPI propsys_RefreshPropertySchema (IPropertySystem *iface)
 
HRESULT WINAPI PSGetPropertySystem (REFIID riid, void **obj)
 
HRESULT WINAPI PSRegisterPropertySchema (PCWSTR path)
 
HRESULT WINAPI PSUnregisterPropertySchema (PCWSTR path)
 
HRESULT WINAPI PSGetPropertyDescription (REFPROPERTYKEY propkey, REFIID riid, void **ppv)
 
HRESULT WINAPI PSGetPropertyDescriptionListFromString (LPCWSTR proplist, REFIID riid, void **ppv)
 
HRESULT WINAPI PSGetPropertyKeyFromName (PCWSTR name, PROPERTYKEY *key)
 
HRESULT WINAPI PSRefreshPropertySchema (void)
 
HRESULT WINAPI PSStringFromPropertyKey (REFPROPERTYKEY pkey, LPWSTR psz, UINT cch)
 
static BOOL validate_indices (LPCWSTR s, int min, int max)
 
static BOOL string_to_guid (LPCWSTR s, LPGUID id)
 
HRESULT WINAPI PSPropertyKeyFromString (LPCWSTR pszString, PROPERTYKEY *pkey)
 
HRESULT WINAPI PSCreateMemoryPropertyStore (REFIID riid, void **ppv)
 

Variables

static const IClassFactoryVtbl InMemoryPropertyStoreFactoryVtbl
 
static IClassFactory InMemoryPropertyStoreFactory = { &InMemoryPropertyStoreFactoryVtbl }
 
static const IPropertySystemVtbl propsysvtbl
 
static IPropertySystem propsys = { &propsysvtbl }
 
static const BYTE hex2bin []
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 22 of file propsys_main.c.

Function Documentation

◆ ClassFactory_AddRef()

static ULONG WINAPI ClassFactory_AddRef ( IClassFactory iface)
static

Definition at line 58 of file propsys_main.c.

59{
60 TRACE("(%p)\n", iface);
61 return 2;
62}
#define TRACE(s)
Definition: solgame.cpp:4

◆ ClassFactory_LockServer()

static HRESULT WINAPI ClassFactory_LockServer ( IClassFactory iface,
BOOL  fLock 
)
static

Definition at line 70 of file propsys_main.c.

71{
72 TRACE("(%p)->(%x)\n", iface, fLock);
73
74 return S_OK;
75}
#define S_OK
Definition: intsafe.h:52

◆ ClassFactory_QueryInterface()

static HRESULT WINAPI ClassFactory_QueryInterface ( IClassFactory iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 37 of file propsys_main.c.

38{
39 *ppv = NULL;
40
42 TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv);
43 *ppv = iface;
45 TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv);
46 *ppv = iface;
47 }
48
49 if(*ppv) {
50 IUnknown_AddRef((IUnknown*)*ppv);
51 return S_OK;
52 }
53
54 FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv);
55 return E_NOINTERFACE;
56}
#define FIXME(fmt,...)
Definition: precomp.h:53
const GUID IID_IUnknown
const GUID IID_IClassFactory
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ ClassFactory_Release()

static ULONG WINAPI ClassFactory_Release ( IClassFactory iface)
static

Definition at line 64 of file propsys_main.c.

65{
66 TRACE("(%p)\n", iface);
67 return 1;
68}

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 95 of file propsys_main.c.

96{
97 if(IsEqualGUID(&CLSID_InMemoryPropertyStore, rclsid)) {
98 TRACE("(CLSID_InMemoryPropertyStore %s %p)\n", debugstr_guid(riid), ppv);
99 return IClassFactory_QueryInterface(&InMemoryPropertyStoreFactory, riid, ppv);
100 }
101
102 FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
104}
static IClassFactory InMemoryPropertyStoreFactory
Definition: propsys_main.c:93
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663

◆ InMemoryPropertyStoreFactory_CreateInstance()

static HRESULT WINAPI InMemoryPropertyStoreFactory_CreateInstance ( IClassFactory iface,
IUnknown outer,
REFIID  riid,
void **  ppv 
)
static

Definition at line 77 of file propsys_main.c.

79{
80 TRACE("(%p %s %p)\n", outer, debugstr_guid(riid), ppv);
81
83}
HRESULT PropertyStore_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppv)
Definition: propstore.c:451

◆ propsys_AddRef()

static ULONG WINAPI propsys_AddRef ( IPropertySystem iface)
static

Definition at line 120 of file propsys_main.c.

121{
122 return 2;
123}

◆ propsys_EnumeratePropertyDescriptions()

static HRESULT WINAPI propsys_EnumeratePropertyDescriptions ( IPropertySystem iface,
PROPDESC_ENUMFILTER  filter,
REFIID  riid,
void **  ppv 
)
static

Definition at line 149 of file propsys_main.c.

151{
152 FIXME("%d %s %p: stub\n", filter, debugstr_guid(riid), ppv);
153 return E_NOTIMPL;
154}
#define E_NOTIMPL
Definition: ddrawi.h:99
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005

◆ propsys_FormatForDisplay()

static HRESULT WINAPI propsys_FormatForDisplay ( IPropertySystem iface,
REFPROPERTYKEY  key,
REFPROPVARIANT  propvar,
PROPDESC_FORMAT_FLAGS  flags,
LPWSTR  dest,
DWORD  destlen 
)
static

Definition at line 156 of file propsys_main.c.

159{
160 FIXME("%p %p %x %p %ld: stub\n", key, propvar, flags, dest, destlen);
161 return E_NOTIMPL;
162}
GLbitfield flags
Definition: glext.h:7161
static char * dest
Definition: rtl.c:135
Definition: copy.c:22

◆ propsys_FormatForDisplayAlloc()

static HRESULT WINAPI propsys_FormatForDisplayAlloc ( IPropertySystem iface,
REFPROPERTYKEY  key,
REFPROPVARIANT  propvar,
PROPDESC_FORMAT_FLAGS  flags,
LPWSTR text 
)
static

Definition at line 164 of file propsys_main.c.

167{
168 FIXME("%p %p %x %p: stub\n", key, propvar, flags, text);
169 return E_NOTIMPL;
170}
const WCHAR * text
Definition: package.c:1794

◆ propsys_GetPropertyDescription()

static HRESULT WINAPI propsys_GetPropertyDescription ( IPropertySystem iface,
REFPROPERTYKEY  propkey,
REFIID  riid,
void **  ppv 
)
static

Definition at line 130 of file propsys_main.c.

132{
133 return PSGetPropertyDescription(propkey, riid, ppv);
134}
HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv)
Definition: propsys_main.c:223

◆ propsys_GetPropertyDescriptionByName()

static HRESULT WINAPI propsys_GetPropertyDescriptionByName ( IPropertySystem iface,
LPCWSTR  canonical_name,
REFIID  riid,
void **  ppv 
)
static

Definition at line 136 of file propsys_main.c.

138{
139 FIXME("%s %s %p: stub\n", debugstr_w(canonical_name), debugstr_guid(riid), ppv);
140 return E_NOTIMPL;
141}
#define debugstr_w
Definition: kernel32.h:32

◆ propsys_GetPropertyDescriptionListFromString()

static HRESULT WINAPI propsys_GetPropertyDescriptionListFromString ( IPropertySystem iface,
LPCWSTR  proplist,
REFIID  riid,
void **  ppv 
)
static

Definition at line 143 of file propsys_main.c.

145{
147}
HRESULT WINAPI PSGetPropertyDescriptionListFromString(LPCWSTR proplist, REFIID riid, void **ppv)
Definition: propsys_main.c:229

◆ propsys_QueryInterface()

static HRESULT WINAPI propsys_QueryInterface ( IPropertySystem iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 106 of file propsys_main.c.

107{
108 *obj = NULL;
109
110 if (IsEqualIID(riid, &IID_IPropertySystem) || IsEqualIID(riid, &IID_IUnknown)) {
111 *obj = iface;
112 IPropertySystem_AddRef(iface);
113 return S_OK;
114 }
115
116 FIXME("%s\n", debugstr_guid(riid));
117 return E_NOINTERFACE;
118}
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ propsys_RefreshPropertySchema()

static HRESULT WINAPI propsys_RefreshPropertySchema ( IPropertySystem iface)
static

Definition at line 182 of file propsys_main.c.

183{
185}
HRESULT WINAPI PSRefreshPropertySchema(void)
Definition: propsys_main.c:241

◆ propsys_RegisterPropertySchema()

static HRESULT WINAPI propsys_RegisterPropertySchema ( IPropertySystem iface,
LPCWSTR  path 
)
static

Definition at line 172 of file propsys_main.c.

173{
175}
HRESULT WINAPI PSRegisterPropertySchema(PCWSTR path)
Definition: propsys_main.c:209

◆ propsys_Release()

static ULONG WINAPI propsys_Release ( IPropertySystem iface)
static

Definition at line 125 of file propsys_main.c.

126{
127 return 1;
128}

◆ propsys_UnregisterPropertySchema()

static HRESULT WINAPI propsys_UnregisterPropertySchema ( IPropertySystem iface,
LPCWSTR  path 
)
static

Definition at line 177 of file propsys_main.c.

178{
180}
HRESULT WINAPI PSUnregisterPropertySchema(PCWSTR path)
Definition: propsys_main.c:216

◆ PSCreateMemoryPropertyStore()

HRESULT WINAPI PSCreateMemoryPropertyStore ( REFIID  riid,
void **  ppv 
)

◆ PSGetPropertyDescription()

HRESULT WINAPI PSGetPropertyDescription ( REFPROPERTYKEY  propkey,
REFIID  riid,
void **  ppv 
)

Definition at line 223 of file propsys_main.c.

224{
225 FIXME("%p, %p, %p\n", propkey, riid, ppv);
226 return E_NOTIMPL;
227}

Referenced by propsys_GetPropertyDescription().

◆ PSGetPropertyDescriptionListFromString()

HRESULT WINAPI PSGetPropertyDescriptionListFromString ( LPCWSTR  proplist,
REFIID  riid,
void **  ppv 
)

Definition at line 229 of file propsys_main.c.

230{
231 FIXME("%s, %p, %p\n", debugstr_w(proplist), riid, ppv);
232 return E_NOTIMPL;
233}

Referenced by propsys_GetPropertyDescriptionListFromString().

◆ PSGetPropertyKeyFromName()

HRESULT WINAPI PSGetPropertyKeyFromName ( PCWSTR  name,
PROPERTYKEY *  key 
)

Definition at line 235 of file propsys_main.c.

236{
237 FIXME("%s, %p\n", debugstr_w(name), key);
238 return E_NOTIMPL;
239}
Definition: name.c:39

◆ PSGetPropertySystem()

HRESULT WINAPI PSGetPropertySystem ( REFIID  riid,
void **  obj 
)

Definition at line 204 of file propsys_main.c.

205{
206 return IPropertySystem_QueryInterface(&propsys, riid, obj);
207}
static IPropertySystem propsys
Definition: propsys_main.c:202

◆ PSPropertyKeyFromString()

HRESULT WINAPI PSPropertyKeyFromString ( LPCWSTR  pszString,
PROPERTYKEY *  pkey 
)

Definition at line 389 of file propsys_main.c.

390{
391 BOOL has_minus = FALSE, has_comma = FALSE;
392
393 TRACE("(%s, %p)\n", debugstr_w(pszString), pkey);
394
395 if (!pszString || !pkey)
396 return E_POINTER;
397
398 memset(pkey, 0, sizeof(PROPERTYKEY));
399
400 if (!string_to_guid(pszString, &pkey->fmtid))
401 return E_INVALIDARG;
402
403 pszString += GUIDSTRING_MAX - 1;
404
405 if (!*pszString)
406 return E_INVALIDARG;
407
408 /* Only the space seems to be recognized as whitespace. The comma is only
409 * recognized once and processing terminates if another comma is found. */
410 while (*pszString == ' ' || *pszString == ',')
411 {
412 if (*pszString == ',')
413 {
414 if (has_comma)
415 return S_OK;
416 else
417 has_comma = TRUE;
418 }
419 pszString++;
420 }
421
422 if (!*pszString)
423 return E_INVALIDARG;
424
425 /* Only two minus signs are recognized if no comma is detected. The first
426 * sign is ignored, and the second is interpreted. If a comma is detected
427 * before the minus sign, then only one minus sign counts, and property ID
428 * interpretation begins with the next character. */
429 if (has_comma)
430 {
431 if (*pszString == '-')
432 {
433 has_minus = TRUE;
434 pszString++;
435 }
436 }
437 else
438 {
439 if (*pszString == '-')
440 pszString++;
441
442 /* Skip any intermediate spaces after the first minus sign. */
443 while (*pszString == ' ')
444 pszString++;
445
446 if (*pszString == '-')
447 {
448 has_minus = TRUE;
449 pszString++;
450 }
451
452 /* Skip any remaining spaces after minus sign. */
453 while (*pszString == ' ')
454 pszString++;
455 }
456
457 /* Overflow is not checked. */
458 while ('0' <= *pszString && *pszString <= '9')
459 {
460 pkey->pid *= 10;
461 pkey->pid += (*pszString - '0');
462 pszString++;
463 }
464
465 if (has_minus)
466 pkey->pid = ~pkey->pid + 1;
467
468 return S_OK;
469}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
static BOOL string_to_guid(LPCWSTR s, LPGUID id)
Definition: propsys_main.c:354
#define memset(x, y, z)
Definition: compat.h:39
_In_ DWORD _In_ DWORD _Out_writes_to_opt_ pcchString LPSTR pszString
Definition: wincrypt.h:4505
#define E_POINTER
Definition: winerror.h:2365

Referenced by test_PSPropertyKeyFromString().

◆ PSRefreshPropertySchema()

HRESULT WINAPI PSRefreshPropertySchema ( void  )

Definition at line 241 of file propsys_main.c.

242{
243 FIXME("\n");
244 return S_OK;
245}

Referenced by propsys_RefreshPropertySchema(), and test_PSRefreshPropertySchema().

◆ PSRegisterPropertySchema()

HRESULT WINAPI PSRegisterPropertySchema ( PCWSTR  path)

Definition at line 209 of file propsys_main.c.

210{
211 FIXME("%s stub\n", debugstr_w(path));
212
213 return S_OK;
214}

Referenced by propsys_RegisterPropertySchema().

◆ PSStringFromPropertyKey()

HRESULT WINAPI PSStringFromPropertyKey ( REFPROPERTYKEY  pkey,
LPWSTR  psz,
UINT  cch 
)

Definition at line 247 of file propsys_main.c.

248{
249 WCHAR pidW[PKEY_PIDSTR_MAX + 1];
250 LPWSTR p = psz;
251 int len;
252
253 TRACE("(%p, %p, %u)\n", pkey, psz, cch);
254
255 if (!psz)
256 return E_POINTER;
257
258 /* GUIDSTRING_MAX accounts for null terminator, +1 for space character. */
259 if (cch <= GUIDSTRING_MAX + 1)
261
262 if (!pkey)
263 {
264 psz[0] = '\0';
266 }
267
268 swprintf(psz, cch, L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", pkey->fmtid.Data1,
269 pkey->fmtid.Data2, pkey->fmtid.Data3, pkey->fmtid.Data4[0], pkey->fmtid.Data4[1],
270 pkey->fmtid.Data4[2], pkey->fmtid.Data4[3], pkey->fmtid.Data4[4],
271 pkey->fmtid.Data4[5], pkey->fmtid.Data4[6], pkey->fmtid.Data4[7]);
272
273 /* Overwrite the null terminator with the space character. */
274 p += GUIDSTRING_MAX - 1;
275 *p++ = ' ';
276 cch -= GUIDSTRING_MAX - 1 + 1;
277
278 len = swprintf(pidW, ARRAY_SIZE(pidW), L"%u", pkey->pid);
279
280 if (cch >= len + 1)
281 {
282 lstrcpyW(p, pidW);
283 return S_OK;
284 }
285 else
286 {
287 WCHAR *ptr = pidW + len - 1;
288
289 psz[0] = '\0';
290 *p++ = '\0';
291 cch--;
292
293 /* Replicate a quirk of the native implementation where the contents
294 * of the property ID string are written backwards to the output
295 * buffer, skipping the rightmost digit. */
296 if (cch)
297 {
298 ptr--;
299 while (cch--)
300 *p++ = *ptr--;
301 }
302
304 }
305}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define lstrcpyW
Definition: compat.h:749
#define swprintf
Definition: precomp.h:40
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
static PVOID ptr
Definition: dispmode.c:27
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:202
#define L(x)
Definition: ntvdm.h:50
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:2345
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by test_PSStringFromPropertyKey().

◆ PSUnregisterPropertySchema()

HRESULT WINAPI PSUnregisterPropertySchema ( PCWSTR  path)

Definition at line 216 of file propsys_main.c.

217{
218 FIXME("%s stub\n", debugstr_w(path));
219
220 return E_NOTIMPL;
221}

Referenced by propsys_UnregisterPropertySchema().

◆ string_to_guid()

static BOOL string_to_guid ( LPCWSTR  s,
LPGUID  id 
)
static

Definition at line 354 of file propsys_main.c.

355{
356 /* in form {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} */
357
358 if (!validate_indices(s, 0, 8)) return FALSE;
359 id->Data1 = (hex2bin[s[1]] << 28 | hex2bin[s[2]] << 24 | hex2bin[s[3]] << 20 | hex2bin[s[4]] << 16 |
360 hex2bin[s[5]] << 12 | hex2bin[s[6]] << 8 | hex2bin[s[7]] << 4 | hex2bin[s[8]]);
361 if (!validate_indices(s, 9, 14)) return FALSE;
362 id->Data2 = hex2bin[s[10]] << 12 | hex2bin[s[11]] << 8 | hex2bin[s[12]] << 4 | hex2bin[s[13]];
363 if (!validate_indices(s, 15, 19)) return FALSE;
364 id->Data3 = hex2bin[s[15]] << 12 | hex2bin[s[16]] << 8 | hex2bin[s[17]] << 4 | hex2bin[s[18]];
365
366 /* these are just sequential bytes */
367
368 if (!validate_indices(s, 20, 21)) return FALSE;
369 id->Data4[0] = hex2bin[s[20]] << 4 | hex2bin[s[21]];
370 if (!validate_indices(s, 22, 24)) return FALSE;
371 id->Data4[1] = hex2bin[s[22]] << 4 | hex2bin[s[23]];
372
373 if (!validate_indices(s, 25, 26)) return FALSE;
374 id->Data4[2] = hex2bin[s[25]] << 4 | hex2bin[s[26]];
375 if (!validate_indices(s, 27, 28)) return FALSE;
376 id->Data4[3] = hex2bin[s[27]] << 4 | hex2bin[s[28]];
377 if (!validate_indices(s, 29, 30)) return FALSE;
378 id->Data4[4] = hex2bin[s[29]] << 4 | hex2bin[s[30]];
379 if (!validate_indices(s, 31, 32)) return FALSE;
380 id->Data4[5] = hex2bin[s[31]] << 4 | hex2bin[s[32]];
381 if (!validate_indices(s, 33, 34)) return FALSE;
382 id->Data4[6] = hex2bin[s[33]] << 4 | hex2bin[s[34]];
383 if (!validate_indices(s, 35, 37)) return FALSE;
384 id->Data4[7] = hex2bin[s[35]] << 4 | hex2bin[s[36]];
385
386 return TRUE;
387}
GLdouble s
Definition: gl.h:2039
static const BYTE hex2bin[]
Definition: propsys_main.c:307
static BOOL validate_indices(LPCWSTR s, int min, int max)
Definition: propsys_main.c:318

Referenced by PSPropertyKeyFromString().

◆ validate_indices()

static BOOL validate_indices ( LPCWSTR  s,
int  min,
int  max 
)
static

Definition at line 318 of file propsys_main.c.

319{
320 int i;
321
322 for (i = min; i <= max; i++)
323 {
324 if (!s[i])
325 return FALSE;
326
327 if (i == 0)
328 {
329 if (s[i] != '{')
330 return FALSE;
331 }
332 else if (i == 9 || i == 14 || i == 19 || i == 24)
333 {
334 if (s[i] != '-')
335 return FALSE;
336 }
337 else if (i == 37)
338 {
339 if (s[i] != '}')
340 return FALSE;
341 }
342 else
343 {
344 if (s[i] > 'f' || (!hex2bin[s[i]] && s[i] != '0'))
345 return FALSE;
346 }
347 }
348
349 return TRUE;
350}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define min(a, b)
Definition: monoChain.cc:55
#define max(a, b)
Definition: svc.c:63

Referenced by string_to_guid().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( propsys  )

Variable Documentation

◆ hex2bin

const BYTE hex2bin[]
static
Initial value:
=
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,
0,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,10,11,12,13,14,15
}

Definition at line 307 of file propsys_main.c.

Referenced by string_to_guid(), and validate_indices().

◆ InMemoryPropertyStoreFactory

IClassFactory InMemoryPropertyStoreFactory = { &InMemoryPropertyStoreFactoryVtbl }
static

Definition at line 93 of file propsys_main.c.

Referenced by DllGetClassObject().

◆ InMemoryPropertyStoreFactoryVtbl

const IClassFactoryVtbl InMemoryPropertyStoreFactoryVtbl
static
Initial value:
= {
}
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
Definition: propsys_main.c:70
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
Definition: propsys_main.c:64
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
Definition: propsys_main.c:37
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
Definition: propsys_main.c:58
static HRESULT WINAPI InMemoryPropertyStoreFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
Definition: propsys_main.c:77

Definition at line 85 of file propsys_main.c.

◆ propsys

IPropertySystem propsys = { &propsysvtbl }
static

Definition at line 202 of file propsys_main.c.

Referenced by propvar_changetype(), and PSGetPropertySystem().

◆ propsysvtbl

const IPropertySystemVtbl propsysvtbl
static
Initial value:
= {
}
static HRESULT WINAPI propsys_GetPropertyDescriptionListFromString(IPropertySystem *iface, LPCWSTR proplist, REFIID riid, void **ppv)
Definition: propsys_main.c:143
static HRESULT WINAPI propsys_RefreshPropertySchema(IPropertySystem *iface)
Definition: propsys_main.c:182
static ULONG WINAPI propsys_Release(IPropertySystem *iface)
Definition: propsys_main.c:125
static HRESULT WINAPI propsys_FormatForDisplayAlloc(IPropertySystem *iface, REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags, LPWSTR *text)
Definition: propsys_main.c:164
static HRESULT WINAPI propsys_UnregisterPropertySchema(IPropertySystem *iface, LPCWSTR path)
Definition: propsys_main.c:177
static ULONG WINAPI propsys_AddRef(IPropertySystem *iface)
Definition: propsys_main.c:120
static HRESULT WINAPI propsys_FormatForDisplay(IPropertySystem *iface, REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags, LPWSTR dest, DWORD destlen)
Definition: propsys_main.c:156
static HRESULT WINAPI propsys_RegisterPropertySchema(IPropertySystem *iface, LPCWSTR path)
Definition: propsys_main.c:172
static HRESULT WINAPI propsys_GetPropertyDescriptionByName(IPropertySystem *iface, LPCWSTR canonical_name, REFIID riid, void **ppv)
Definition: propsys_main.c:136
static HRESULT WINAPI propsys_EnumeratePropertyDescriptions(IPropertySystem *iface, PROPDESC_ENUMFILTER filter, REFIID riid, void **ppv)
Definition: propsys_main.c:149
static HRESULT WINAPI propsys_QueryInterface(IPropertySystem *iface, REFIID riid, void **obj)
Definition: propsys_main.c:106
static HRESULT WINAPI propsys_GetPropertyDescription(IPropertySystem *iface, REFPROPERTYKEY propkey, REFIID riid, void **ppv)
Definition: propsys_main.c:130

Definition at line 187 of file propsys_main.c.