Leaked source code of windows server 2003
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.
|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1999 **/ /**********************************************************************/
/*
rtrdata.cpp Implementation for data objects in the MMC
FILE HISTORY: */
#include "stdafx.h"
#include "rtrdata.h"
#include "extract.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////////
// Sample code to show how to Create DataObjects
// Minimal error checking for clarity
// Clipboard formats
unsigned int CRouterDataObject::m_cfComputerName = RegisterClipboardFormat(L"MMC_SNAPIN_MACHINE_NAME"); unsigned int CRouterDataObject::m_cfComputerAddedAsLocal = RegisterClipboardFormat(L"MMC_MPRSNAP_COMPUTERADDEDASLOCAL");
/////////////////////////////////////////////////////////////////////////////
// CRouterDataObject implementations
DEBUG_DECLARE_INSTANCE_COUNTER(CRouterDataObject);
HRESULT CRouterDataObject::GetMoreDataHere(LPFORMATETC lpFormatetc, LPSTGMEDIUM lpMedium) { HRESULT hr = DV_E_CLIPFORMAT;
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// Based on the CLIPFORMAT write data to the stream
const CLIPFORMAT cf = lpFormatetc->cfFormat;
if (cf == m_cfComputerName) { hr = CreateComputerName(lpMedium); } else if (cf == m_cfComputerAddedAsLocal) hr = CreateComputerAddedAsLocal(lpMedium);
return hr; }
HRESULT CRouterDataObject::QueryGetMoreData(LPFORMATETC lpFormatEtc) { HRESULT hr = E_INVALIDARG;
// of these then return invalid.
if ((lpFormatEtc->cfFormat == m_cfComputerName) || (lpFormatEtc->cfFormat == m_cfComputerAddedAsLocal)) hr = S_OK;
return hr; }
/////////////////////////////////////////////////////////////////////////////
// CRouterDataObject creation members
void CRouterDataObject::SetComputerName(LPCTSTR pszComputerName) { m_stComputerName = pszComputerName; }
HRESULT CRouterDataObject::CreateComputerName(LPSTGMEDIUM lpMedium) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); USES_CONVERSION;
LPCWSTR pswz = T2CW((LPCTSTR) m_stComputerName);
// Create the computer name object
return Create(pswz, (StrLenW(pswz)+1) * sizeof(WCHAR), lpMedium); }
void CRouterDataObject::SetComputerAddedAsLocal(BOOL fComputerAddedAsLocal) { m_fComputerAddedAsLocal = fComputerAddedAsLocal; }
HRESULT CRouterDataObject::CreateComputerAddedAsLocal(LPSTGMEDIUM lpMedium) { return Create(&m_fComputerAddedAsLocal, sizeof(m_fComputerAddedAsLocal), lpMedium); }
|