ReactOS 0.4.15-dev-5667-ged97270
propsys.idl File Reference

Go to the source code of this file.

Classes

interface  IInitializeWithFile
 
interface  IInitializeWithStream
 
interface  IPropertyStore
 
interface  v1_enum
 
interface  IPropertyChange
 
interface  IPropertyChangeArray
 
interface  IPropertyStoreCapabilities
 
interface  IPropertyStoreCache
 
interface  IPropertyEnumType
 
interface  IPropertyEnumType2
 
interface  IPropertyEnumTypeList
 
interface  IPropertyDescription
 
interface  IPropertyDescription2
 
interface  IPropertyDescriptionAliasInfo
 
interface  IPropertyDescriptionSearchInfo
 
interface  IPropertySystem
 
interface  IPropertyDescriptionList
 
interface  IPropertyStoreFactory
 
interface  IDelayedPropertyStoreFactory
 
interface  IPersistSerializedPropStorage
 
interface  IPersistSerializedPropStorage2
 
interface  IPropertySystemChangeNotify
 
interface  ICreateObject
 
class  PropSysObjects::InMemoryPropertyStore
 

Modules

library  PropSysObjects
 

Typedefs

typedef PROPERTYKEY * REFPROPERTYKEY
 
typedef v1_enum GPS_HANDLERPROPERTIESONLY = 0x01
 
typedef v1_enum GPS_READWRITE = 0x02
 
typedef v1_enum GPS_TEMPORARY = 0x04
 
typedef v1_enum GPS_FASTPROPERTIESONLY = 0x08
 
typedef v1_enum GPS_OPENSLOWITEM = 0x10
 
typedef v1_enum GPS_DELAYCREATION = 0x20
 
typedef v1_enum GPS_BESTEFFORT = 0x40
 
typedef v1_enum GPS_NO_OPLOCK = 0x80
 
typedef v1_enum GPS_MASK_VALID
 
typedef v1_enum PKA_APPEND
 
typedef v1_enum PKA_FLAGS
 
typedef v1_enum PDEF_SYSTEM
 
typedef v1_enum PDEF_NONSYSTEM
 
typedef v1_enum PDEF_VIEWABLE
 
typedef v1_enum PDEF_QUERYABLE
 
typedef v1_enum PDEF_INFULLTEXTQUERY
 
typedef v1_enum PROPDESC_ENUMFILTER
 
typedef int PERSIST_SPROPSTORE_FLAGS
 
typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE
 
typedef SERIALIZEDPROPSTORAGEPUSERIALIZEDPROPSTORAGE
 
typedef const SERIALIZEDPROPSTORAGEPCUSERIALIZEDPROPSTORAGE
 

Enumerations

enum  _PERSIST_SPROPSTORE_FLAGS { FPSPS_DEFAULT = 0 , FPSPS_READONLY = 1 }
 

Functions

 DEFINE_ENUM_FLAG_OPERATORS (GETPROPERTYSTOREFLAGS)[uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23)
 
HRESULT WINAPI PSCreateMemoryPropertyStore (REFIID, void **)
 
HRESULT WINAPI PSStringFromPropertyKey (REFPROPERTYKEY, LPWSTR, UINT)
 
HRESULT WINAPI PSPropertyKeyFromString (LPCWSTR, PROPERTYKEY *)
 
HRESULT WINAPI PSGetPropertyDescription (REFPROPERTYKEY, REFIID, void **)
 
HRESULT WINAPI PSGetPropertyDescriptionListFromString (LPCWSTR, REFIID, void **)
 
HRESULT WINAPI PSRefreshPropertySchema (void)
 
HRESULT WINAPI PSRegisterPropertySchema (LPCWSTR)
 
HRESULT WINAPI PSUnregisterPropertySchema (LPCWSTR)
 
coclass PropSysObjects::InMemoryPropertyStore PropSysObjects::uuid (b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem
 

Typedef Documentation

◆ GPS_BESTEFFORT

typedef v1_enum GPS_BESTEFFORT = 0x40

◆ GPS_DELAYCREATION

typedef v1_enum GPS_DELAYCREATION = 0x20

◆ GPS_FASTPROPERTIESONLY

◆ GPS_HANDLERPROPERTIESONLY

◆ GPS_MASK_VALID

Initial value:
= 0xff
} GETPROPERTYSTOREFLAGS

◆ GPS_NO_OPLOCK

typedef v1_enum GPS_NO_OPLOCK = 0x80

◆ GPS_OPENSLOWITEM

typedef v1_enum GPS_OPENSLOWITEM = 0x10

◆ GPS_READWRITE

typedef v1_enum GPS_READWRITE = 0x02

◆ GPS_TEMPORARY

typedef v1_enum GPS_TEMPORARY = 0x04

◆ PCUSERIALIZEDPROPSTORAGE

◆ PDEF_INFULLTEXTQUERY

◆ PDEF_NONSYSTEM

◆ PDEF_QUERYABLE

◆ PDEF_SYSTEM

◆ PDEF_VIEWABLE

◆ PERSIST_SPROPSTORE_FLAGS

Definition at line 725 of file propsys.idl.

◆ PKA_APPEND

◆ PKA_FLAGS

typedef v1_enum PKA_FLAGS

◆ PROPDESC_ENUMFILTER

◆ PUSERIALIZEDPROPSTORAGE

◆ REFPROPERTYKEY

typedef PROPERTYKEY* REFPROPERTYKEY

Definition at line 34 of file propsys.idl.

◆ SERIALIZEDPROPSTORAGE

typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE

Definition at line 727 of file propsys.idl.

Enumeration Type Documentation

◆ _PERSIST_SPROPSTORE_FLAGS

Enumerator
FPSPS_DEFAULT 
FPSPS_READONLY 

Definition at line 720 of file propsys.idl.

721{
722 FPSPS_DEFAULT = 0,
724};
@ FPSPS_READONLY
Definition: propsys.idl:723
@ FPSPS_DEFAULT
Definition: propsys.idl:722

Function Documentation

◆ DEFINE_ENUM_FLAG_OPERATORS()

DEFINE_ENUM_FLAG_OPERATORS ( GETPROPERTYSTOREFLAGS  )

◆ PSCreateMemoryPropertyStore()

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

Definition at line 514 of file propsys_main.c.

515{
516 TRACE("(%s, %p)\n", debugstr_guid(riid), ppv);
517
519}
#define NULL
Definition: types.h:112
HRESULT PropertyStore_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppv)
Definition: propstore.c:451
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by test_propertystore(), and test_PSCreateMemoryPropertyStore().

◆ PSGetPropertyDescription()

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

Definition at line 260 of file propsys_main.c.

261{
262 FIXME("%p, %p, %p\n", propkey, riid, ppv);
263 return E_NOTIMPL;
264}
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

Referenced by propsys_GetPropertyDescription().

◆ PSGetPropertyDescriptionListFromString()

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

Definition at line 266 of file propsys_main.c.

267{
268 FIXME("%s, %p, %p\n", debugstr_w(proplist), riid, ppv);
269 return E_NOTIMPL;
270}
#define debugstr_w
Definition: kernel32.h:32

Referenced by propsys_GetPropertyDescriptionListFromString().

◆ PSPropertyKeyFromString()

HRESULT WINAPI PSPropertyKeyFromString ( LPCWSTR  pszString,
PROPERTYKEY *  pkey 
)

Definition at line 432 of file propsys_main.c.

433{
434 BOOL has_minus = FALSE, has_comma = FALSE;
435
436 TRACE("(%s, %p)\n", debugstr_w(pszString), pkey);
437
438 if (!pszString || !pkey)
439 return E_POINTER;
440
441 memset(pkey, 0, sizeof(PROPERTYKEY));
442
443 if (!string_to_guid(pszString, &pkey->fmtid))
444 return E_INVALIDARG;
445
446 pszString += GUIDSTRING_MAX - 1;
447
448 if (!*pszString)
449 return E_INVALIDARG;
450
451 /* Only the space seems to be recognized as whitespace. The comma is only
452 * recognized once and processing terminates if another comma is found. */
453 while (*pszString == ' ' || *pszString == ',')
454 {
455 if (*pszString == ',')
456 {
457 if (has_comma)
458 return S_OK;
459 else
460 has_comma = TRUE;
461 }
462 pszString++;
463 }
464
465 if (!*pszString)
466 return E_INVALIDARG;
467
468 /* Only two minus signs are recognized if no comma is detected. The first
469 * sign is ignored, and the second is interpreted. If a comma is detected
470 * before the minus sign, then only one minus sign counts, and property ID
471 * interpretation begins with the next character. */
472 if (has_comma)
473 {
474 if (*pszString == '-')
475 {
476 has_minus = TRUE;
477 pszString++;
478 }
479 }
480 else
481 {
482 if (*pszString == '-')
483 pszString++;
484
485 /* Skip any intermediate spaces after the first minus sign. */
486 while (*pszString == ' ')
487 pszString++;
488
489 if (*pszString == '-')
490 {
491 has_minus = TRUE;
492 pszString++;
493 }
494
495 /* Skip any remaining spaces after minus sign. */
496 while (*pszString == ' ')
497 pszString++;
498 }
499
500 /* Overflow is not checked. */
501 while (iswdigit(*pszString))
502 {
503 pkey->pid *= 10;
504 pkey->pid += (*pszString - '0');
505 pszString++;
506 }
507
508 if (has_minus)
509 pkey->pid = ~pkey->pid + 1;
510
511 return S_OK;
512}
#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
#define iswdigit(_c)
Definition: ctype.h:667
#define S_OK
Definition: intsafe.h:52
static BOOL string_to_guid(LPCWSTR s, LPGUID id)
Definition: propsys_main.c:397
#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 278 of file propsys_main.c.

279{
280 FIXME("\n");
281 return S_OK;
282}

Referenced by propsys_RefreshPropertySchema(), and test_PSRefreshPropertySchema().

◆ PSRegisterPropertySchema()

HRESULT WINAPI PSRegisterPropertySchema ( LPCWSTR  )

◆ PSStringFromPropertyKey()

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

Definition at line 284 of file propsys_main.c.

285{
286 static const WCHAR guid_fmtW[] = {'{','%','0','8','X','-','%','0','4','X','-',
287 '%','0','4','X','-','%','0','2','X','%','0','2','X','-',
288 '%','0','2','X','%','0','2','X','%','0','2','X',
289 '%','0','2','X','%','0','2','X','%','0','2','X','}',0};
290 static const WCHAR pid_fmtW[] = {'%','u',0};
291
292 WCHAR pidW[PKEY_PIDSTR_MAX + 1];
293 LPWSTR p = psz;
294 int len;
295
296 TRACE("(%p, %p, %u)\n", pkey, psz, cch);
297
298 if (!psz)
299 return E_POINTER;
300
301 /* GUIDSTRING_MAX accounts for null terminator, +1 for space character. */
302 if (cch <= GUIDSTRING_MAX + 1)
304
305 if (!pkey)
306 {
307 psz[0] = '\0';
309 }
310
311 swprintf(psz, guid_fmtW, pkey->fmtid.Data1, pkey->fmtid.Data2,
312 pkey->fmtid.Data3, pkey->fmtid.Data4[0], pkey->fmtid.Data4[1],
313 pkey->fmtid.Data4[2], pkey->fmtid.Data4[3], pkey->fmtid.Data4[4],
314 pkey->fmtid.Data4[5], pkey->fmtid.Data4[6], pkey->fmtid.Data4[7]);
315
316 /* Overwrite the null terminator with the space character. */
317 p += GUIDSTRING_MAX - 1;
318 *p++ = ' ';
319 cch -= GUIDSTRING_MAX - 1 + 1;
320
321 len = swprintf(pidW, pid_fmtW, pkey->pid);
322
323 if (cch >= len + 1)
324 {
325 lstrcpyW(p, pidW);
326 return S_OK;
327 }
328 else
329 {
330 WCHAR *ptr = pidW + len - 1;
331
332 psz[0] = '\0';
333 *p++ = '\0';
334 cch--;
335
336 /* Replicate a quirk of the native implementation where the contents
337 * of the property ID string are written backwards to the output
338 * buffer, skipping the rightmost digit. */
339 if (cch)
340 {
341 ptr--;
342 while (cch--)
343 *p++ = *ptr--;
344 }
345
347 }
348}
#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 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 ( LPCWSTR  )