ReactOS  0.4.15-dev-1150-g593bcce
propsys.idl File Reference

Go to the source code of this file.

Classes

interface  IInitializeWithFile
 
interface  IInitializeWithStream
 
interface  IPropertyStore
 
interface  v1_enum
 
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  v1_enum
 
interface  IPropertySystem
 
interface  IPropertyDescriptionList
 
interface  IPropertyStoreFactory
 
interface  IDelayedPropertyStoreFactory
 
interface  IPersistSerializedPropStorage
 
interface  IPersistSerializedPropStorage2
 
interface  IPropertySystemChangeNotify
 
interface  ICreateObject
 
class  PropSysObjects::InMemoryPropertyStore
 

Modules

library  PropSysObjects
 

Typedefs

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)
 
PKEYSTR_MAX(GUIDSTRING_MAX+1+PKEY_PIDSTR_MAX) 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
 

Variables

PSSTDAPI typedef PROPERTYKEY * REFPROPERTYKEY
 

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

◆ 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,
723  FPSPS_READONLY = 1
724 };

Function Documentation

◆ DEFINE_ENUM_FLAG_OPERATORS()

DEFINE_ENUM_FLAG_OPERATORS ( GETPROPERTYSTOREFLAGS  )

◆ PSCreateMemoryPropertyStore()

PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX) HRESULT WINAPI PSCreateMemoryPropertyStore ( REFIID  ,
void **   
)

Definition at line 514 of file propsys_main.c.

515 {
516  TRACE("(%s, %p)\n", debugstr_guid(riid), ppv);
517 
519 }
REFIID riid
Definition: precomp.h:44
HRESULT PropertyStore_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppv)
Definition: propstore.c:451
REFIID LPVOID * ppv
Definition: atlbase.h:39
smooth NULL
Definition: ftsmooth.c:416
#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  ,
REFIID  ,
void **   
)

Definition at line 260 of file propsys_main.c.

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

Referenced by propsys_GetPropertyDescription().

◆ PSGetPropertyDescriptionListFromString()

HRESULT WINAPI PSGetPropertyDescriptionListFromString ( LPCWSTR  ,
REFIID  ,
void **   
)

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 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

Referenced by propsys_GetPropertyDescriptionListFromString().

◆ PSPropertyKeyFromString()

HRESULT WINAPI PSPropertyKeyFromString ( LPCWSTR  ,
PROPERTYKEY *   
)

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 TRUE
Definition: types.h:120
#define iswdigit(_c)
Definition: ctype.h:667
static BOOL string_to_guid(LPCWSTR s, LPGUID id)
Definition: propsys_main.c:397
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:51
#define E_POINTER
Definition: winerror.h:2365
#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()

HRESULT WINAPI PSRefreshPropertySchema ( void  )

Definition at line 278 of file propsys_main.c.

279 {
280  FIXME("\n");
281  return S_OK;
282 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define S_OK
Definition: intsafe.h:51

Referenced by propsys_RefreshPropertySchema(), and test_PSRefreshPropertySchema().

◆ PSRegisterPropertySchema()

HRESULT WINAPI PSRegisterPropertySchema ( LPCWSTR  )

◆ PSStringFromPropertyKey()

HRESULT WINAPI PSStringFromPropertyKey ( REFPROPERTYKEY  ,
LPWSTR  ,
UINT   
)

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 }
static PVOID ptr
Definition: dispmode.c:27
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:201
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define swprintf(buf, format,...)
Definition: sprintf.c:56
GLenum GLsizei len
Definition: glext.h:6722
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:2345
#define S_OK
Definition: intsafe.h:51
#define lstrcpyW
Definition: compat.h:497
GLfloat GLfloat p
Definition: glext.h:8902
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define E_POINTER
Definition: winerror.h:2365

Referenced by test_PSStringFromPropertyKey().

◆ PSUnregisterPropertySchema()

HRESULT WINAPI PSUnregisterPropertySchema ( LPCWSTR  )

Variable Documentation

◆ REFPROPERTYKEY

PSSTDAPI typedef PROPERTYKEY* REFPROPERTYKEY

Definition at line 30 of file propsys.idl.

Referenced by test_PSStringFromPropertyKey().