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.
168 lines
3.7 KiB
168 lines
3.7 KiB
/*++
|
|
|
|
Copyright (C) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
iprpbrws.cpp
|
|
|
|
Abstract:
|
|
|
|
Implementation of the IPerPropertyBrowsingg interface exposed on the
|
|
Polyline object.
|
|
|
|
--*/
|
|
|
|
#include "polyline.h"
|
|
#include "unkhlpr.h"
|
|
#include "smonid.h"
|
|
#include "ctrprop.h"
|
|
#include "srcprop.h"
|
|
#include "genprop.h"
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing interface implementation
|
|
*/
|
|
|
|
IMPLEMENT_CONTAINED_INTERFACE(CPolyline, CImpIPerPropertyBrowsing)
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing::GetClassID
|
|
*
|
|
* Purpose:
|
|
* Returns the CLSID of the object represented by this interface.
|
|
*
|
|
* Parameters:
|
|
* pClsID LPCLSID in which to store our CLSID.
|
|
*/
|
|
|
|
STDMETHODIMP
|
|
CImpIPerPropertyBrowsing::GetClassID(LPCLSID pClsID)
|
|
{
|
|
HRESULT hr = S_OK;
|
|
|
|
if (pClsID == NULL) {
|
|
return E_POINTER;
|
|
}
|
|
|
|
try {
|
|
*pClsID=m_pObj->m_clsID;
|
|
} catch (...) {
|
|
hr = E_POINTER;
|
|
}
|
|
|
|
return hr;
|
|
}
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing::GetDisplayString
|
|
*
|
|
* Purpose:
|
|
* Returns a text string describing the property identified with DispID.
|
|
*
|
|
* Parameters:
|
|
* dispID Dispatch identifier for the property.
|
|
* pBstr Receives a pointer to the display string describing the property
|
|
*/
|
|
|
|
STDMETHODIMP CImpIPerPropertyBrowsing::GetDisplayString (
|
|
DISPID /* dispID */,
|
|
BSTR* /* pBstr */ )
|
|
{
|
|
/*
|
|
HRESULT hr = S_OK;
|
|
|
|
VARIANT vValue;
|
|
|
|
if (NULL==pIPropBag)
|
|
return ResultFromScode(E_POINTER);
|
|
|
|
//Read all the data into the control structure.
|
|
hr = m_pObj->m_pCtrl->LoadFromPropertyBag ( pIPropBag, pIError );
|
|
return hr;
|
|
*/
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing::GetPredefinedStrings
|
|
*
|
|
* Purpose:
|
|
* Returns a counted array of strings, each corresponding to a value that the
|
|
* property specified by dispID can accept.
|
|
*
|
|
* Parameters:
|
|
* dispID Dispatch identifier for the property.
|
|
* pcaStringsOut Receives a pointer to an array of strings
|
|
* pcaCookiesOut Receives a pointer to an array of DWORDs
|
|
*/
|
|
|
|
STDMETHODIMP CImpIPerPropertyBrowsing::GetPredefinedStrings (
|
|
DISPID /* dispID */,
|
|
CALPOLESTR* /* pcaStringsOut */,
|
|
CADWORD* /* pcaCookiesOut */ )
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing::GetPredefinedValue
|
|
*
|
|
* Purpose:
|
|
* Returns a variant containing the value of the property specified by dispID.
|
|
*
|
|
* Parameters:
|
|
* dispID Dispatch identifier for the property.
|
|
* dwCookie Token returned by GetPredefinedStrings
|
|
* pVarOut Receives a pointer to a VARIANT value for the property.
|
|
*/
|
|
|
|
STDMETHODIMP CImpIPerPropertyBrowsing::GetPredefinedValue (
|
|
DISPID /* dispID */,
|
|
DWORD /* dwCookie */,
|
|
VARIANT* /* pVarOut */ )
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
/*
|
|
* CImpIPerPropertyBrowsing::MapPropertyToPage
|
|
*
|
|
* Purpose:
|
|
* Returns the CLSID of the property page associated with
|
|
* the property specified by dispID.
|
|
*
|
|
* Parameters:
|
|
* dispID Dispatch identifier for the property.
|
|
* pClsid Receives a pointer to the CLSID of the property page.
|
|
*/
|
|
|
|
STDMETHODIMP CImpIPerPropertyBrowsing::MapPropertyToPage (
|
|
DISPID dispID,
|
|
LPCLSID pClsID
|
|
)
|
|
{
|
|
HRESULT hr = S_OK;
|
|
|
|
if (pClsID == NULL) {
|
|
return E_POINTER;
|
|
}
|
|
|
|
try {
|
|
if ( DISPID_VALUE == dispID ) {
|
|
// Data page
|
|
*pClsID = CLSID_CounterPropPage;
|
|
} else if ( DISPID_SYSMON_DATASOURCETYPE == dispID ) {
|
|
// Source page
|
|
*pClsID = CLSID_SourcePropPage;
|
|
} else {
|
|
// General page is default
|
|
*pClsID = CLSID_GeneralPropPage;
|
|
}
|
|
} catch (...) {
|
|
hr = E_POINTER;
|
|
}
|
|
|
|
return hr;
|
|
}
|
|
|