49{
52 PROPERTYKEY pkey;
53 PROPVARIANT propvar;
56
58 &IID_IPropertyStoreCache, (void**)&propcache);
59 ok(
hr ==
S_OK,
"CoCreateInstance failed, hr=%x\n",
hr);
60
62 {
63 skip(
"CLSID_InMemoryPropertyStore not supported\n");
64 return;
65 }
66
67 hr = IPropertyStoreCache_GetCount(propcache,
NULL);
69
70 hr = IPropertyStoreCache_GetCount(propcache, &
count);
71 ok(
hr ==
S_OK,
"GetCount failed, hr=%x\n",
hr);
72 ok(
count == 0,
"GetCount returned %i, expected 0\n",
count);
73
74 hr = IPropertyStoreCache_Commit(propcache);
76
77 hr = IPropertyStoreCache_Commit(propcache);
79
80 hr = IPropertyStoreCache_GetAt(propcache, 0, &pkey);
82
83 pkey.fmtid = PKEY_WineTest;
84 pkey.pid = 4;
85
86 memset(&propvar, 0,
sizeof(propvar));
88 propvar.u.lVal = 12345;
89
90 if (0)
91 {
92
93 hr = IPropertyStoreCache_SetValue(propcache,
NULL, &propvar);
95
96 hr = IPropertyStoreCache_SetValue(propcache, &pkey,
NULL);
98 }
99
100 hr = IPropertyStoreCache_SetValue(propcache, &pkey, &propvar);
101 ok(
hr ==
S_OK,
"SetValue failed, hr=%x\n",
hr);
102
103 hr = IPropertyStoreCache_GetCount(propcache, &
count);
104 ok(
hr ==
S_OK,
"GetCount failed, hr=%x\n",
hr);
105 ok(
count == 1,
"GetCount returned %i, expected 0\n",
count);
106
107 memset(&pkey, 0,
sizeof(pkey));
108
109 hr = IPropertyStoreCache_GetAt(propcache, 0, &pkey);
111 ok(
IsEqualGUID(&pkey.fmtid, &PKEY_WineTest),
"got wrong pkey\n");
112 ok(pkey.pid == 4,
"got pid of %i, expected 4\n", pkey.pid);
113
114 pkey.fmtid = PKEY_WineTest;
115 pkey.pid = 4;
116
117 memset(&propvar, 0,
sizeof(propvar));
118
119 if (0)
120 {
121
122 hr = IPropertyStoreCache_GetValue(propcache,
NULL, &propvar);
124 }
125
126 hr = IPropertyStoreCache_GetValue(propcache, &pkey,
NULL);
128
129 hr = IPropertyStoreCache_GetValue(propcache, &pkey, &propvar);
130 ok(
hr ==
S_OK,
"GetValue failed, hr=%x\n",
hr);
131 ok(propvar.vt ==
VT_I4,
"expected VT_I4, got %d\n", propvar.vt);
132 ok(propvar.u.lVal == 12345,
"expected 12345, got %d\n", propvar.u.lVal);
133
134 pkey.fmtid = PKEY_WineTest;
135 pkey.pid = 10;
136
137
139 hr = IPropertyStoreCache_GetValue(propcache, &pkey, &propvar);
140 ok(
hr ==
S_OK,
"GetValue failed, hr=%x\n",
hr);
141 ok(propvar.vt ==
VT_EMPTY,
"expected VT_EMPTY, got %d\n", propvar.vt);
142
144 hr = IPropertyStoreCache_GetState(propcache, &pkey, &
state);
146 ok(
state == PSC_NORMAL,
"expected PSC_NORMAL, got %d\n",
state);
147
150 hr = IPropertyStoreCache_GetValueAndState(propcache, &pkey, &propvar, &
state);
152 ok(propvar.vt ==
VT_EMPTY,
"expected VT_EMPTY, got %d\n", propvar.vt);
153 ok(
state == PSC_NORMAL,
"expected PSC_NORMAL, got %d\n",
state);
154
155
156 hr = IPropertyStoreCache_SetState(propcache, &pkey, PSC_NORMAL);
158
159
160 pkey.fmtid = PKEY_WineTest;
161 pkey.pid = 4;
162
164 hr = IPropertyStoreCache_GetState(propcache, &pkey, &
state);
165 ok(
hr ==
S_OK,
"GetState failed, hr=%x\n",
hr);
166 ok(
state == PSC_NORMAL,
"expected PSC_NORMAL, got %d\n",
state);
167
168 hr = IPropertyStoreCache_SetState(propcache, &pkey, 10);
169 ok(
hr ==
S_OK,
"SetState failed, hr=%x\n",
hr);
170
172 hr = IPropertyStoreCache_GetState(propcache, &pkey, &
state);
173 ok(
hr ==
S_OK,
"GetState failed, hr=%x\n",
hr);
175
177 propvar.u.lVal = 12346;
178 hr = IPropertyStoreCache_SetValueAndState(propcache, &pkey, &propvar, 5);
179 ok(
hr ==
S_OK,
"SetValueAndState failed, hr=%x\n",
hr);
180
181 memset(&propvar, 0,
sizeof(propvar));
183 hr = IPropertyStoreCache_GetValueAndState(propcache, &pkey, &propvar, &
state);
184 ok(
hr ==
S_OK,
"GetValueAndState failed, hr=%x\n",
hr);
185 ok(propvar.vt ==
VT_I4,
"expected VT_I4, got %d\n", propvar.vt);
186 ok(propvar.u.lVal == 12346,
"expected 12346, got %d\n", propvar.vt);
188
189
190 pkey.fmtid = PKEY_WineTest;
191 pkey.pid = 8;
192
194 propvar.u.lVal = 12347;
195 hr = IPropertyStoreCache_SetValueAndState(propcache, &pkey, &propvar, PSC_DIRTY);
196 ok(
hr ==
S_OK,
"SetValueAndState failed, hr=%x\n",
hr);
197
198 memset(&propvar, 0,
sizeof(propvar));
200 hr = IPropertyStoreCache_GetValueAndState(propcache, &pkey, &propvar, &
state);
201 ok(
hr ==
S_OK,
"GetValueAndState failed, hr=%x\n",
hr);
202 ok(propvar.vt ==
VT_I4,
"expected VT_I4, got %d\n", propvar.vt);
203 ok(propvar.u.lVal == 12347,
"expected 12347, got %d\n", propvar.vt);
204 ok(
state == PSC_DIRTY,
"expected PSC_DIRTY, got %d\n",
state);
205
206 IPropertyStoreCache_Release(propcache);
207}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
GLuint GLuint GLsizei count
#define IsEqualGUID(rguid1, rguid2)
#define TYPE_E_ELEMENTNOTFOUND