IDispatchEx::GetMemberProperties

Retrieves a member's properties.

Syntax

HRESULT GetMemberProperties(  
   DISPID id,  
   DWORD grfdexFetch,  
   DWORD *pgrfdex  
);  

Parameters

id
Identifies the member. Uses GetDispID or GetNextDispID to obtain the dispatch identifier.

grfdexFetch
Determines which properties to retrieve. This can be a combination of the values listed under pgrfdex and/or a combination of the following values:

Value Meaning
grfdexPropCanAll Combines fdexPropCanGet, fdexPropCanPut, fdexPropCanPutRef, fdexPropCanCall, fdexPropCanConstruct and fdexPropCanSourceEvents.
grfdexPropCannotAll Combines fdexPropCannotGet, fdexPropCannotPut, fdexPropCannotPutRef, fdexPropCannotCall, fdexPropCannotConstruct and fdexPropCannotSourceEvents.
grfdexPropExtraAll Combines fdexPropNoSideEffects and fdexPropDynamicType.
grfdexPropAll Combines grfdexPropCanAll, grfdexPropCannotAll and grfdexPropExtraAll.

pgrfdex
Address of a DWORD that receives the requested properties. This can be a combination of the following values:

Value Meaning
fdexPropCanGet The member can be obtained using DISPATCH_PROPERTYGET.
fdexPropCannotGet The member cannot be obtained using DISPATCH_PROPERTYGET.
fdexPropCanPut The member can be set using DISPATCH_PROPERTYPUT.
fdexPropCannotPut The member cannot be set using DISPATCH_PROPERTYPUT.
fdexPropCanPutRef The member can be set using DISPATCH_PROPERTYPUTREF.
fdexPropCannotPutRef The member cannot be set using DISPATCH_PROPERTYPUTREF.
fdexPropNoSideEffects The member does not have any side effects. For example, a debugger could safely get/set/call this member without changing the state of the script being debugged.
fdexPropDynamicType The member is dynamic and can change during the lifetime of the object.
fdexPropCanCall The member can be called as a method using DISPATCH_METHOD.
fdexPropCannotCall The member cannot be called as a method using DISPATCH_METHOD.
fdexPropCanConstruct The member can be called as a constructor using DISPATCH_CONSTRUCT.
fdexPropCannotConstruct The member cannot be called as a constructor using DISPATCH_CONSTRUCT.
fdexPropCanSourceEvents The member can fire events.
fdexPropCannotSourceEvents The member cannot fire events.

Return Value

Returns one of the following values:

S_OK Success.
DISP_E_UNKNOWNNAME The name was not known.

Example

BSTR bstrName;  
   DISPID dispid;  
   IDispatchEx *pdex;   
   DWORD dwProps;  
  
   // Assign to pdex and bstrName  
   if (SUCCEEDED(pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid)) &&  
      SUCCEEDED(pdex->GetMemberProperties(dispid, grfdexPropAll, &dwProps)) &&  
         (dwProps & fdexPropCanPut))  
   {  
      // Assign to member  
   }  

See also

IDispatchEx Interface
IDispatchEx::GetDispID
IDispatchEx::GetNextDispID