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.
71 lines
1.7 KiB
71 lines
1.7 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1998 - 1998
|
|
//
|
|
// File: shellext.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
#ifndef _SHELLEXT_H
|
|
#define _SHELLEXT_H
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CShellExt
|
|
|
|
class CShellExt :
|
|
public IShellExtInit,
|
|
public IContextMenu,
|
|
public CComObjectRoot,
|
|
public CComCoClass<CShellExt,&CLSID_OuDelegWizExt>
|
|
{
|
|
public:
|
|
CShellExt()
|
|
{
|
|
m_hParentWnd = NULL;
|
|
}
|
|
|
|
|
|
BEGIN_COM_MAP(CShellExt)
|
|
COM_INTERFACE_ENTRY(IShellExtInit)
|
|
COM_INTERFACE_ENTRY(IContextMenu)
|
|
END_COM_MAP()
|
|
|
|
static HRESULT WINAPI UpdateRegistry(BOOL bRegister)
|
|
{
|
|
return _Module.UpdateRegistryCLSID(GetObjectCLSID(), bRegister);
|
|
}
|
|
|
|
|
|
DECLARE_NOT_AGGREGATABLE(CShellExt)
|
|
|
|
|
|
// IShellExtInit methods
|
|
public:
|
|
STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pdtobj,
|
|
HKEY hkeyProgID);
|
|
|
|
// IContextMenu methods
|
|
public:
|
|
STDMETHOD(QueryContextMenu)(HMENU hMenu, UINT indexMenu, UINT idCmdFirst,
|
|
UINT idCmdLast, UINT uFlags);
|
|
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpcmi);
|
|
STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uFlags, UINT FAR *reserved,
|
|
LPSTR pszName, UINT cchMax);
|
|
|
|
private:
|
|
HWND m_hParentWnd;
|
|
CWString m_szObjectLDAPPath;
|
|
};
|
|
|
|
#endif // _SHELLEXT_H
|