@@ -2282,22 +2282,23 @@ static ZEND_FUNCTION(mapi_getidsfromnames)
22822282 ZCL_MEMORY;
22832283 zval *pzstore, *pznames, *pzguids = nullptr ;
22842284 PROPID_ARRAY propids;
2285- MAPI_RESOURCE *pstore;
22862285 PROPNAME_ARRAY propnames;
22872286
22882287 if (zend_parse_parameters (ZEND_NUM_ARGS (),
22892288 " ra|a" , &pzstore, &pznames, &pzguids) == FAILURE
22902289 || NULL == pzstore || NULL == pznames)
22912290 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)
22942294 pthrow (ecInvalidObject);
2295+ else if (pstore == nullptr )
2296+ pthrow (ecInvalidParam);
22952297 auto err = php_to_propname_array (pznames, pzguids, &propnames);
22962298 if (err != ecSuccess)
22972299 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);
23012302 if (result != ecSuccess)
23022303 pthrow (result);
23032304 zarray_init (return_value);
@@ -2624,17 +2625,19 @@ static ZEND_FUNCTION(mapi_getnamesfromids)
26242625 zval *pzarray, *pzresource;
26252626 char num_buff[20 ];
26262627 PROPID_ARRAY propids;
2627- MAPI_RESOURCE *pstore;
26282628 PROPTAG_ARRAY proptags;
26292629 PROPNAME_ARRAY propnames;
26302630
26312631 if (zend_parse_parameters (ZEND_NUM_ARGS (),
26322632 " ra" , &pzresource, &pzarray) == FAILURE || NULL
26332633 == pzresource || NULL == pzarray)
26342634 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);
26382641 auto err = php_to_proptag_array (pzarray, &proptags);
26392642 if (err != ecSuccess)
26402643 pthrow (err);
@@ -2645,8 +2648,8 @@ static ZEND_FUNCTION(mapi_getnamesfromids)
26452648 }
26462649 for (unsigned int i = 0 ; i < proptags.count ; ++i)
26472650 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);
26502653 if (result != ecSuccess)
26512654 pthrow (result);
26522655 zarray_init (return_value);
0 commit comments