This example returns the myfile specific data for the details view of this object and sets the pointer (*ppDetailsData) to the beginning of the buffer into which the data is written.
SOM_Scope ULONG SOMLINK myf_wpQueryDetailsData(MYFILE *somSelf, PVOID *ppDetailsData, PULONG pcp) { PMYFILEDETAILS pMYFILEDetails; PBYTE pSize; MYFILEData *somThis = MYFILEGetData(somSelf); MYFILEMethodDebug("MYFILE","myf_wpQueryDetailsData"); parent_wpQueryDetailsData(somSelf,ppDetailsData, pcp); if (ppDetailsData) /* query data */ { pMYFILEDetails = (PMYFILEDETAILS) *ppDetailsData; pMYFILEDetails->pszLastWorker = _queryLastWorker(somSelf); /* point to buffer location after our details data */ *ppDetailsData = ((PBYTE) (*ppDetailsData)) + sizeof(*pMYFILEDetails); } else { *pcp += sizeof(*pMYFILEDetails); /* caller is querying size of buffer */ } return( TRUE ); }