@@ -2282,22 +2282,23 @@ static ZEND_FUNCTION(mapi_getidsfromnames)
2282
2282
ZCL_MEMORY;
2283
2283
zval *pzstore, *pznames, *pzguids = nullptr ;
2284
2284
PROPID_ARRAY propids;
2285
- MAPI_RESOURCE *pstore;
2286
2285
PROPNAME_ARRAY propnames;
2287
2286
2288
2287
if (zend_parse_parameters (ZEND_NUM_ARGS (),
2289
2288
" ra|a" , &pzstore, &pznames, &pzguids) == FAILURE
2290
2289
|| NULL == pzstore || NULL == pznames)
2291
2290
pthrow (ecInvalidParam);
2292
- ZEND_FETCH_RESOURCE (pstore, pzstore, le_mapi_msgstore);
2293
- if (pstore->type != zs_objtype::store)
2291
+ auto pstore = resolve_resource (pzstore, {le_mapi_msgstore,
2292
+ le_mapi_folder, le_mapi_message, le_mapi_attachment});
2293
+ if (pstore == &invalid_object)
2294
2294
pthrow (ecInvalidObject);
2295
+ else if (pstore == nullptr )
2296
+ pthrow (ecInvalidParam);
2295
2297
auto err = php_to_propname_array (pznames, pzguids, &propnames);
2296
2298
if (err != ecSuccess)
2297
2299
pthrow (err);
2298
- auto result = zclient_getnamedpropids (
2299
- pstore->hsession , pstore->hobject ,
2300
- &propnames, &propids);
2300
+ auto result = zclient_getnamedpropids (pstore->hsession ,
2301
+ pstore->hobject , &propnames, &propids);
2301
2302
if (result != ecSuccess)
2302
2303
pthrow (result);
2303
2304
zarray_init (return_value);
@@ -2624,17 +2625,19 @@ static ZEND_FUNCTION(mapi_getnamesfromids)
2624
2625
zval *pzarray, *pzresource;
2625
2626
char num_buff[20 ];
2626
2627
PROPID_ARRAY propids;
2627
- MAPI_RESOURCE *pstore;
2628
2628
PROPTAG_ARRAY proptags;
2629
2629
PROPNAME_ARRAY propnames;
2630
2630
2631
2631
if (zend_parse_parameters (ZEND_NUM_ARGS (),
2632
2632
" ra" , &pzresource, &pzarray) == FAILURE || NULL
2633
2633
== pzresource || NULL == pzarray)
2634
2634
pthrow (ecInvalidParam);
2635
- ZEND_FETCH_RESOURCE (pstore, pzresource, le_mapi_msgstore);
2636
- if (pstore->type != zs_objtype::store)
2637
- pthrow (ecInvalidObject);
2635
+ auto probject = resolve_resource (pzresource, {le_mapi_msgstore,
2636
+ le_mapi_folder, le_mapi_message, le_mapi_attachment});
2637
+ if (probject == &invalid_object)
2638
+ pthrow (ecInvalidObject);
2639
+ else if (probject == nullptr )
2640
+ pthrow (ecInvalidParam);
2638
2641
auto err = php_to_proptag_array (pzarray, &proptags);
2639
2642
if (err != ecSuccess)
2640
2643
pthrow (err);
@@ -2645,8 +2648,8 @@ static ZEND_FUNCTION(mapi_getnamesfromids)
2645
2648
}
2646
2649
for (unsigned int i = 0 ; i < proptags.count ; ++i)
2647
2650
propids[i] = PROP_ID (proptags.pproptag [i]);
2648
- auto result = zclient_getpropnames (pstore ->hsession , pstore-> hobject ,
2649
- propids, &propnames);
2651
+ auto result = zclient_getpropnames (probject ->hsession ,
2652
+ probject-> hobject , propids, &propnames);
2650
2653
if (result != ecSuccess)
2651
2654
pthrow (result);
2652
2655
zarray_init (return_value);
0 commit comments