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
priv.h
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 5k
Category:
Windows Kernel
Development Platform:
Visual C++
- #ifndef pack2_h__
- #define pack2_h__
- #define INC_OLE2 // Prevent windows.h from pulling in OLE 1
- #include <windows.h>
- #include <windowsx.h>
- #include <stdlib.h>
- #include <shlobj.h> // ;Internal
- #include <shellapi.h> // ;Internal
- #include <shlwapi.h>
- #include <shlwapip.h> // ;Internal
- #include <ole2.h>
- #include <ole2ver.h>
- // #include <crtfree.h> // don't use CRT libs
- #include <ccstock.h>
- // #include <shsemip.h> // in ccshellinc
- // #include <shellp.h> // in ccshellinc
- // #include <debug.h> // in ccshellinc
- // #include <shguidp.h> // in ccshellinc
- #include "packutil.h"
- #include "packguid.h"
- #include "ids.h"
- HRESULT CPackage_CreateInstnace(IUnknown ** ppunk);
- //////////////////////////////////
- // External Variables
- //
- extern UINT g_cRefThisDll; // per-instance
- extern HINSTANCE g_hinst;
- extern UINT g_cfFileContents;
- extern UINT g_cfFileDescriptor;
- extern UINT g_cfObjectDescriptor;
- extern UINT g_cfEmbedSource;
- extern UINT g_cfFileNameW;
- extern INT g_cxIcon;
- extern INT g_cyIcon;
- extern INT g_cxArrange;
- extern INT g_cyArrange;
- extern HFONT g_hfontTitle;
- //////////////////////////////////
- // Global Constants
- //
- #define HIMETRIC_PER_INCH 2540 // Number of HIMETRIC units per inch
- #define DEF_LOGPIXELSX 96 // Default values for pixels per
- #define DEF_LOGPIXELSY 96 // logical inch
- #define CBCMDLINKMAX 500 // num chars in cmdline package
- #define FILE_SHARE_READWRITE (FILE_SHARE_READ | FILE_SHARE_WRITE)
- #define OLEIVERB_EDITPACKAGE (OLEIVERB_PRIMARY+1)
- #define OLEIVERB_FIRST_CONTEXT (OLEIVERB_PRIMARY+2)
- #define OLEIVERB_LAST_CONTEXT (OLEIVERB_PRIMARY+0xFFFF)
- #define PACKWIZ_NUM_PAGES 3 // number of pages in our wizard
- //////////////////////////////////
- // Clipboard Formats
- //
- #define CF_FILECONTENTS g_cfFileContents
- #define CF_FILEDESCRIPTOR g_cfFileDescriptor
- #define CF_OBJECTDESCRIPTOR g_cfObjectDescriptor
- #define CF_EMBEDSOURCE g_cfEmbedSource
- #define CF_FILENAMEW g_cfFileNameW
- #define CFSTR_EMBEDSOURCE TEXT("Embed Source")
- #define CFSTR_OBJECTDESCRIPTOR TEXT("Object Descriptor")
- //////////////////////////////////
- // String constants
- //
- #define SZUSERTYPE L"OLE Package"
- #define SZCONTENTS L"01Ole10Native"
- #define SZAPPNAME TEXT("Object Packager")
- //////////////////////////////////
- // Old packager junk...
- //
- // NOTE: This enumeration is used to determine what kind of information
- // is stored in a packager object. Currently, the new packager on supports
- // ICON and PEMBED. We will probably want to implement CMDLINK and PICTURE
- // to remain back compatible with the old packager.
- //
- typedef enum
- {
- NOTHING,
- CMDLINK,
- ICON,
- PEMBED,
- PICTURE
- } PANETYPE;
- //////////////////////////////////
- // Embedded File structure
- //
- // NOTE: This is similar to the structure used by the old packager to store
- // information about the embedded file, however it is slightly different.
- // Most notably, I use a FILEDESCRIPTOR structure to hold onto the filename
- // and filesize so this information can be easily transferred in a GetData call
- // Also, I've deleted some uncessary fields that the old packager used to
- // deal with OLE 1 ways of dealing with things.
- typedef struct _EMBED // embed
- {
- FILEDESCRIPTOR fd; // file descriptor of embedded file
- LPTSTR pszTempName; // temp. file name used when shellexec'ing
- HANDLE hTask; // handle to task on shellexec'ed objects
- LPOLEOBJECT poo; // oleobject interface on running contents
- BOOL fIsOleFile; // TRUE if OLE can activate this type of file
- } EMBED, *LPEMBED;
- //////////////////////////////////
- // Command line structure
- //
- // NOTE: This is the structure the old packager used when implementing
- // the command line packages. It will be best to use this structure for
- // the new packager for ease of use in reading and writing old packager
- // formats.
- //
- typedef struct _CML // cml
- {
- BOOL fCmdIsLink;
- TCHAR szCommandLine[CBCMDLINKMAX];
- } CML, *LPCML;
- ////////////////////////////////
- // PackageInfo Structure
- //
- // NOTE: This structure is used by the Create New Package Wizard and the
- // Edit Package dialogs. We use it to hold onto package information, so that
- // the CPackage Object can initialize/reinitialize itself after one of these
- // calls.
- //
- typedef struct _packageInfo
- {
- TCHAR szLabel[MAX_PATH];
- TCHAR szFilename[MAX_PATH];
- TCHAR szIconPath[MAX_PATH];
- int iIcon; // must be an int for PickIconDlg
- } PACKAGER_INFO, *LPPACKAGER_INFO;
- ////////////////////////////////
- // PersistStorage enumeration
- //
- typedef enum
- {
- PSSTATE_UNINIT = 0, //Uninitialized
- PSSTATE_SCRIBBLE, //Scribble
- PSSTATE_ZOMBIE, //No scribble
- PSSTATE_HANDSOFF //Hand-off
- } PSSTATE;
- #endif
- #include "debug.h"
- #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))