Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
command.cpp
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 3k
Category:
Windows Kernel
Development Platform:
Visual C++
- /*----------------------------------------------------------------------------
- / Title;
- / command.cpp
- /
- / Authors;
- / Rick Turner (ricktu)
- /
- / Notes;
- / Implements IOleCommandTarget for My Documents code.
- /----------------------------------------------------------------------------*/
- #include "precomp.hxx"
- #pragma hdrstop
- /*-----------------------------------------------------------------------------
- / CMyDocsCommand
- / This is the My Documents IOleCommandTarget implementation.
- /----------------------------------------------------------------------------*/
- CMyDocsCommand::CMyDocsCommand( )
- {
- TraceEnter(TRACE_COMMAND, "CMyDocsCommand::CMyDocsCommand");
- TraceLeave();
- }
- CMyDocsCommand::~CMyDocsCommand()
- {
- TraceEnter(TRACE_COMMAND, "CMyDocsCommand::~CMyDocsCommand");
- TraceLeave();
- }
- #undef CLASS_NAME
- #define CLASS_NAME CMyDocsCommand
- #include "unknown.inc"
- STDMETHODIMP
- CMyDocsCommand::QueryInterface(REFIID riid, LPVOID* ppvObject)
- {
- INTERFACES iface[] =
- {
- &IID_IOleCommandTarget, (IOleCommandTarget *)this,
- };
- return HandleQueryInterface(riid, ppvObject, iface, ARRAYSIZE(iface));
- }
- /*-----------------------------------------------------------------------------
- / IOleCommandTarget
- /----------------------------------------------------------------------------*/
- STDMETHODIMP
- CMyDocsCommand::QueryStatus( const GUID *pguidCmdGroup,
- ULONG cCmds,
- OLECMD prgCmds[],
- OLECMDTEXT *pCmdText
- )
- {
- HRESULT hr = OLECMDERR_E_UNKNOWNGROUP;
- TraceEnter(TRACE_COMMAND, "CMyDocsCommand::QueryStatus");
- if (IsEqualGUID(*pguidCmdGroup, CGID_ShellServiceObject))
- {
- // We like Shell Service Object notifications...
- hr = S_OK;
- }
- TraceLeaveResult(hr);
- }
- /*---------------------------------------------------------------------------*/
- STDMETHODIMP
- CMyDocsCommand::Exec( const GUID *pguidCmdGroup,
- DWORD nCmdID,
- DWORD nCmdexecopt,
- VARIANTARG *pvaIn,
- VARIANTARG *pvaOut
- )
- {
- HRESULT hr = E_NOTIMPL;
- TraceEnter(TRACE_COMMAND, "CMyDocsCommand::Exec");
- if (IsEqualGUID(*pguidCmdGroup, CGID_ShellServiceObject))
- {
- // Handle Shell Service Object notifications here.
- switch (nCmdID)
- {
- case SSOCMDID_OPEN:
- Trace(TEXT("Called w/OPEN"));
- hr = _CheckPerUserSettings();
- break;
- case SSOCMDID_CLOSE:
- Trace(TEXT("Called w/CLOSE"));
- hr = _RemovePerUserSettings();
- break;
- default:
- hr = S_OK;
- break;
- }
- }
- TraceLeaveResult( hr );
- }