WindowsXP-SP1/shell/shell32/cpuiele.h

78 lines
1.8 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 2000
//
// File: cpuiele.h
//
//--------------------------------------------------------------------------
#ifndef __CONTROLPANEL_UIELEMENT_H
#define __CONTROLPANEL_UIELEMENT_H
#include <cowsite.h>
#include "cpaction.h"
namespace CPL {
//
// Extension of IUICommand to include the activation of a context menu and
// passing of an IShellBrowser ptr for command invocation.
//
class ICpUiCommand : public IUnknown
{
public:
STDMETHOD(InvokeContextMenu)(HWND hwndParent, const POINT *ppt) PURE;
STDMETHOD(Invoke)(HWND hwndParent, IUnknown *punkSite) PURE;
STDMETHOD(GetDataObject)(IDataObject **ppdtobj) PURE;
};
//
// Internal interface for obtaining element information.
// Very similar to IUIElementInfo but returns the actual display
// information rather than a resource identifier string. Used internally
// only by the Control Panel code.
//
class ICpUiElementInfo : public IUnknown
{
public:
STDMETHOD(LoadIcon)(eCPIMGSIZE eSize, HICON *phIcon) PURE;
STDMETHOD(LoadName)(LPWSTR *ppszName) PURE;
STDMETHOD(LoadTooltip)(LPWSTR *ppszTooltip) PURE;
};
HRESULT
Create_CplUiElement(
LPCWSTR pszName,
LPCWSTR pszInfotip,
LPCWSTR pszIcon,
REFIID riid,
void **ppvOut);
HRESULT
Create_CplUiCommand(
LPCWSTR pszName,
LPCWSTR pszInfotip,
LPCWSTR pszIcon,
const IAction *pAction,
REFIID riid,
void **ppvOut);
HRESULT
Create_CplUiCommandOnPidl(
LPCITEMIDLIST pidl,
REFIID riid,
void **ppvOut);
} // namespace CPL
#endif //__CONTROLPANEL_UIELEMENT_H