ReactOS 0.4.16-dev-732-g2d1144a
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)
 
PSSTDAPI PSCreateMemoryPropertyStore (REFIID, void **)
 
PSSTDAPI PSCreatePropertyStoreFromObject (IUnknown *, DWORD, REFIID, void **)
 
PSSTDAPI PSStringFromPropertyKey (REFPROPERTYKEY, LPWSTR, UINT)
 
PSSTDAPI PSPropertyKeyFromString (LPCWSTR, PROPERTYKEY *)
 
PSSTDAPI PSGetPropertyDescription (REFPROPERTYKEY, REFIID, void **)
 
PSSTDAPI PSGetPropertyDescriptionListFromString (LPCWSTR, REFIID, void **)
 
PSSTDAPI PSRefreshPropertySchema (void)
 
PSSTDAPI PSRegisterPropertySchema (LPCWSTR)
 
PSSTDAPI PSUnregisterPropertySchema (LPCWSTR)
 
coclass PropSysObjects::InMemoryPropertyStore PropSysObjects::uuid (b8967f85-58ae-4f46-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 731 of file propsys.idl.

◆ PKA_APPEND

◆ PKA_FLAGS

typedef v1_enum PKA_FLAGS

◆ PROPDESC_ENUMFILTER

◆ PUSERIALIZEDPROPSTORAGE

◆ REFPROPERTYKEY

typedef PROPERTYKEY* REFPROPERTYKEY

Definition at line 40 of file propsys.idl.

◆ SERIALIZEDPROPSTORAGE

typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE

Definition at line 733 of file propsys.idl.

Enumeration Type Documentation

◆ _PERSIST_SPROPSTORE_FLAGS

Enumerator
FPSPS_DEFAULT 
FPSPS_READONLY 

Definition at line 726 of file propsys.idl.

727{
728 FPSPS_DEFAULT = 0,
730};
@ FPSPS_READONLY
Definition: propsys.idl:729
@ FPSPS_DEFAULT
Definition: propsys.idl:728

Function Documentation

◆ DEFINE_ENUM_FLAG_OPERATORS()

DEFINE_ENUM_FLAG_OPERATORS ( GETPROPERTYSTOREFLAGS  )

◆ PSCreateMemoryPropertyStore()

PSSTDAPI PSCreateMemoryPropertyStore ( REFIID  riid,
void **  ppv 
)

Definition at line 471 of file propsys_main.c.

472{
473 TRACE("(%s, %p)\n", debugstr_guid(riid), ppv);
474
476}
#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(), test_PSCreateMemoryPropertyStore(), and test_PSCreatePropertyStoreFromObject().

◆ PSCreatePropertyStoreFromObject()

PSSTDAPI PSCreatePropertyStoreFromObject ( IUnknown obj,
DWORD  access,
REFIID  riid,
void **  ret 
)

Definition at line 481 of file propstore.c.

482{
483 HRESULT hr;
484
485 TRACE("(%p, %ld, %s, %p)\n", obj, access, debugstr_guid(riid), ret);
486
487 if (!obj || !ret)
488 return E_POINTER;
489
490 if (IsEqualIID(riid, &IID_IPropertyStore) && SUCCEEDED(hr = IUnknown_QueryInterface(obj, riid, ret)))
491 return hr;
492
493 FIXME("Unimplemented for %s.\n", debugstr_guid(riid));
494 return E_NOTIMPL;
495}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
HRESULT hr
Definition: shlfolder.c:183
int ret
#define E_POINTER
Definition: winerror.h:2365

Referenced by test_PSCreatePropertyStoreFromObject().

◆ PSGetPropertyDescription()

PSSTDAPI 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()

PSSTDAPI 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}
#define debugstr_w
Definition: kernel32.h:32

Referenced by propsys_GetPropertyDescriptionListFromString().

◆ PSPropertyKeyFromString()

PSSTDAPI 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
#define S_OK
Definition: intsafe.h:52
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

Referenced by test_PSPropertyKeyFromString().

◆ PSRefreshPropertySchema()

PSSTDAPI 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()

PSSTDAPI PSRegisterPropertySchema ( LPCWSTR  )

◆ PSStringFromPropertyKey()

PSSTDAPI 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()

PSSTDAPI PSUnregisterPropertySchema ( LPCWSTR  )