Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "qmgrlib.h"
#include <objbase.h>
#include "qmgr.h"
UpdateNotificationPointer( IBackgroundCopyGroup * This, REFCLSID clsid ) { IBackgroundCopyCallback1 * callback = NULL;
try { THROW_HRESULT( CoCreateInstance( clsid, NULL, // no aggregation
CLSCTX_INPROC, _uuidof(IBackgroundCopyCallback1), (LPVOID *) &callback ));
THROW_HRESULT( This->SetNotificationPointer( _uuidof(IBackgroundCopyCallback1), callback ));
callback->Release();
return S_OK; } catch( ComError err ) { SafeRelease( callback );
return err.Error() ; } }
HRESULT IBackgroundCopyGroup_SetProp_Proxy( IBackgroundCopyGroup * This, GROUPPROP propID, VARIANT *pvarVal ) /*
This is the client-side proxy function that maps from SetProp (a local function) to InternalSetProp (a remoted function).
*/ { switch (propID) { case GROUPPROP_NOTIFYCLSID: { INT flags; CLSID clsid; VARIANT vFlags;
RETURN_HRESULT( IBackgroundCopyGroup_InternalSetProp_Proxy( This, propID, pvarVal )); RETURN_HRESULT( This->GetProp( GROUPPROP_NOTIFYFLAGS, &vFlags )); RETURN_HRESULT( CLSIDFromString( pvarVal->bstrVal, &clsid ));
flags = vFlags.intVal;
if (clsid != GUID_NULL && 0 == (flags & QM_NOTIFY_DISABLE_NOTIFY)) { RETURN_HRESULT( UpdateNotificationPointer( This, clsid )); }
return S_OK; }
case GROUPPROP_NOTIFYFLAGS: { INT flags; CLSID clsid; VARIANT vClsid;
RETURN_HRESULT( IBackgroundCopyGroup_InternalSetProp_Proxy( This, propID, pvarVal )); RETURN_HRESULT( This->GetProp( GROUPPROP_NOTIFYCLSID, &vClsid )); RETURN_HRESULT( CLSIDFromString( vClsid.bstrVal, &clsid ));
flags = pvarVal->intVal;
if (clsid != GUID_NULL && 0 == (flags & QM_NOTIFY_DISABLE_NOTIFY)) { RETURN_HRESULT( UpdateNotificationPointer( This, clsid )); }
return S_OK; }
default:
return IBackgroundCopyGroup_InternalSetProp_Proxy( This, propID, pvarVal ); }
ASSERT( 0 ); }
HRESULT IBackgroundCopyGroup_SetProp_Stub( IBackgroundCopyGroup * This, GROUPPROP propID, VARIANT *pvarVal ) /*
This is the server-side stub function that maps from InternalSetProp (a remote function) to SetProp (a local function).
*/ { return This->SetProp( propID, pvarVal ); }
|