In this example, objects that are not file system objects are prevented from being dropped on the Browse_O_matic.
SOM_Scope MRESULT SOMLINK Browse_O_Maticwps_wpDrop(Browse_O_Matic *somSelf, HWND hwndCnr, PDRAGINFO pdrgInfo, PDRAGITEM pdrgItem) { CHAR pszBuffer[ 255 ]; MRESULT mResult; /* Browse_O_MaticData *somThis = Browse_O_MaticGetData(somSelf); */ Browse_O_MaticMethodDebug("Browse_O_Matic","Browse_O_Maticwps_wpDrop"); mResult = MRFROM2SHORT( DOR_DROP, 0); /***************************************************************/ /* Don't call the parent. Initialize mResult to allow the drop */ /* to proceed. */ /***************************************************************/ if( DOR_NEVERDROP != SHORT1FROMMR( mResult) && DrgVerifyRMF( pdrgItem, "DRM_OS2FILE", NULL)){ /* Get the path */ DrgQueryStrName( pdrgItem->hstrContainerName, sizeof( pszBuffer), pszBuffer); /* Append the name of the object to the path */ DrgQueryStrName( pdrgItem->hstrSourceName, sizeof( pszBuffer) - strlen( pszBuffer), &pszBuffer[ strlen( pszBuffer)]); _wpViewObject( somSelf, NULLHANDLE, OPEN_DEFAULT, (ULONG)pszBuffer); mResult = MRFROM2SHORT( DOR_DROP, SHORT2FROMMR( mResult)); } else mResult = MRFROMSHORT( DOR_NEVERDROP ); return( mResult ); }