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
dllload.c
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 9k
Category:
Windows Kernel
Development Platform:
Visual C++
- #include "priv.h"
- #include <browseui.h>
- #include "uemapp.h"
- #include "..libdllload.c"
- //
- // To maintain sanity, please list all named imports in alphabetical order.
- // All ordinal imports in numerical order.
- //
- // --------- SHELL32.DLL ---------------
- //
- // ---- delay load post win95 shell32 private functions
- //
- HINSTANCE g_hinstShell32 = NULL;
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, SHSetShellWindowEx, 243,
- (HWND hwnd, HWND hwndChild), (hwnd, hwndChild));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, int, RealDriveTypeFlags, 525,
- (int iDrive, BOOL fOKToHitNet), (iDrive, fOKToHitNet));
- DELAY_LOAD_SHELL_VOID(g_hinstShell32, shell32, SHChangeNotifyReceive, 643,
- (LONG lEvent, UINT uFlags, LPCITEMIDLIST pidl, LPCITEMIDLIST pidlExtra), (lEvent, uFlags, pidl, pidlExtra));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, LPSHChangeNotificationLock, SHChangeNotification_Lock, 644,
- (HANDLE hChangeNotification, DWORD dwProcessId, LPITEMIDLIST **pppidl, LONG *plEvent),
- (hChangeNotification, dwProcessId, pppidl, plEvent));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, SHChangeNotification_Unlock, 645,
- (LPSHChangeNotificationLock pshcnl), (pshcnl));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, SHChangeRegistrationReceive, 646,
- (HANDLE hChangeNotification, DWORD dwProcId), (hChangeNotification, dwProcId));
- DELAY_LOAD_SHELL_VOID(g_hinstShell32, shell32, SHWaitOp_Operate, 648,
- (HANDLE hWaitOp, DWORD dwProcId), (hWaitOp, dwProcId));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, __WriteCabinetState, 652,
- (LPCABINETSTATE lpState), (lpState));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, __ReadCabinetState, 654,
- (LPCABINETSTATE lpState, int cLength), (lpState, cLength));
- BOOL WriteCabinetState(LPCABINETSTATE lpState)
- {
- BOOL fRc = __WriteCabinetState(lpState);
- if (fRc) {
- // We must do this by hand because the old Shell32 doesn't
- HANDLE hChange = SHGlobalCounterCreate(&GUID_FolderSettingsChange);
- SHGlobalCounterIncrement(hChange);
- SHGlobalCounterDestroy(hChange);
- }
- return fRc;
- }
- BOOL ReadCabinetState(LPCABINETSTATE lpState, int iSize)
- {
- if (!g_fRunningOnNT && WhichPlatform() == PLATFORM_IE3)
- {
- // We at least need decent defaults for this case...
- lpState->cLength = sizeof(CABINETSTATE);
- lpState->fSimpleDefault = TRUE;
- lpState->fFullPathTitle = FALSE;
- lpState->fSaveLocalView = TRUE;
- lpState->fNotShell = FALSE;
- lpState->fNewWindowMode = FALSE; // can't simulate this one, use FALSE
- lpState->fShowCompColor = FALSE;
- lpState->fDontPrettyNames = FALSE;
- lpState->fAdminsCreateCommonGroups = TRUE;
- lpState->fUnusedFlags = 0;
- lpState->fMenuEnumFilter = SHCONTF_FOLDERS | SHCONTF_NONFOLDERS;
- // Lie and say we read from the registry,
- // this avoids us calling WriteCabinetState
- return(TRUE);
- }
- else
- {
- return __ReadCabinetState(lpState, iSize);
- }
- }
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, FileIconInit, 660,
- ( BOOL fRestoreCache ), ( fRestoreCache ));
- DELAY_LOAD_SHELL(g_hinstShell32, shell32, BOOL, IsUserAnAdmin, 680, (), ());
- DELAY_LOAD_SHELL_VOID(g_hinstShell32, shell32, CheckWinIniForAssocs, 711, (), ());
- // -------- OLEAUT32.DLL --------
- HINSTANCE g_hinstOLEAUT32 = NULL;
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, CreateErrorInfo,
- (ICreateErrorInfo **pperrinfo), (pperrinfo));
- DELAY_LOAD_INT(g_hinstOLEAUT32, OLEAUT32, DosDateTimeToVariantTime,
- (USHORT wDosDate, USHORT wDosTime, DOUBLE * pvtime), (wDosDate, wDosTime, pvtime));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, LoadRegTypeLib,
- (REFGUID rguid, unsigned short wVerMajor, unsigned short wVerMinor, LCID lcid, ITypeLib **pptlib),
- (rguid, wVerMajor, wVerMinor, lcid, pptlib));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, LoadTypeLib,
- (const WCHAR *szFile, ITypeLib **pptlib), (szFile, pptlib));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, RegisterTypeLib,
- (ITypeLib *ptlib, WCHAR *szFullPath, WCHAR *szHelpDir),
- (ptlib, szFullPath, szHelpDir));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, SetErrorInfo,
- (DWORD dwReserved, IErrorInfo *perrinfo), (dwReserved, perrinfo));
- DELAY_LOAD(g_hinstOLEAUT32, OLEAUT32, BSTR, SysAllocString,
- (const WCHAR *pch), (pch));
- DELAY_LOAD(g_hinstOLEAUT32, OLEAUT32, BSTR, SysAllocStringByteLen,
- (LPCSTR psz, unsigned int len), (psz, len));
- DELAY_LOAD(g_hinstOLEAUT32, OLEAUT32, BSTR, SysAllocStringLen,
- (const WCHAR *pch, unsigned int i), (pch, i));
- DELAY_LOAD_VOID(g_hinstOLEAUT32, OLEAUT32, SysFreeString,
- (BSTR bs), (bs));
- DELAY_LOAD_UINT(g_hinstOLEAUT32, OLEAUT32, SysStringByteLen,
- (BSTR str), (str));
- DELAY_LOAD_UINT(g_hinstOLEAUT32, OLEAUT32, SysStringLen,
- (BSTR str), (str));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, VariantChangeType,
- (VARIANTARG * pvargDest, VARIANTARG * pvarSrc, USHORT wFlags, VARTYPE vt),
- (pvargDest, pvarSrc, wFlags, vt));
- #undef VariantClear
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, VariantClear,
- (VARIANTARG *pvarg), (pvarg));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, VariantCopy,
- (VARIANTARG * pvargDest, VARIANTARG * pvargSrc), (pvargDest, pvargSrc));
- DELAY_LOAD_HRESULT(g_hinstOLEAUT32, OLEAUT32, VarI4FromStr,
- (OLECHAR FAR * strIn, LCID lcid, DWORD dwFlags, LONG * plOut), (strIn, lcid, dwFlags, plOut));
- // --------- CDFVIEW.DLL ---------------
- HINSTANCE g_hinstCDFVIEW = NULL;
- DELAY_LOAD_HRESULT(g_hinstCDFVIEW, CDFVIEW, ParseDesktopComponent,
- (HWND hwndOwner, LPWSTR wszURL, COMPONENT *pInfo),
- (hwndOwner, wszURL, pInfo));
- DELAY_LOAD_HRESULT(g_hinstCDFVIEW, CDFVIEW, SubscribeToCDF,
- (HWND hwndParent, LPCWSTR pwzUrl, DWORD dwCDFTypes),
- (hwndParent, pwzUrl, dwCDFTypes));
- //---------- BROWSEUI.DLL --------------
- HINSTANCE g_hinstBrowseui = NULL;
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, BOOL, SHOnCWMCommandLine, 127,
- (LPARAM lParam), (lParam));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, BOOL, SHOpenFolderWindow, 102,
- (IETHREADPARAM* pieiIn),
- (pieiIn));
- DELAY_LOAD_IE_ORD_VOID(g_hinstBrowseui, BROWSEUI, SHCreateSavedWindows, 105,
- (), ());
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, HRESULT,
- SHCreateBandForPidl, 120,
- (LPCITEMIDLIST pidl, IUnknown** ppunk, BOOL fAllowBrowserBand),
- (pidl, ppunk, fAllowBrowserBand));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, HRESULT,
- SHPidlFromDataObject, 121,
- (IDataObject *pdtobj, LPITEMIDLIST * ppidlTarget, LPWSTR pszDisplayName, DWORD cchDisplayName),
- (pdtobj, ppidlTarget, pszDisplayName, cchDisplayName));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, DWORD,
- IDataObject_GetDeskBandState, 122,
- (IDataObject *pdtobj),
- (pdtobj));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, IETHREADPARAM*,
- SHCreateIETHREADPARAM, 123,
- (LPCWSTR pszCmdLineIn, int nCmdShowIn, ITravelLog *ptlIn, IEFreeThreadedHandShake* piehsIn),
- (pszCmdLineIn, nCmdShowIn, ptlIn, piehsIn));
- DELAY_LOAD_IE_ORD_VOID(g_hinstBrowseui, BROWSEUI,
- SHDestroyIETHREADPARAM, 126,
- (IETHREADPARAM* pieiIn),
- (pieiIn));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, BOOL,
- SHParseIECommandLine, 125,
- (LPCWSTR * ppszCmdLine, IETHREADPARAM * piei),
- (ppszCmdLine, piei));
- DELAY_LOAD_IE_ORD(g_hinstBrowseui, BROWSEUI, HRESULT,
- Channel_QuickLaunch, 133, (void),());
- // --------- WINMM.DLL ---------------
- HINSTANCE g_hinstWINMM = NULL;
- #ifdef UNICODE
- DELAY_LOAD(g_hinstWINMM, WINMM, BOOL, PlaySoundW,
- (LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound),
- (pszSound, hmod, fdwSound));
- #else
- DELAY_LOAD(g_hinstWINMM, WINMM, BOOL, PlaySoundA,
- (LPCSTR pszSound, HMODULE hmod, DWORD fdwSound),
- (pszSound, hmod, fdwSound));
- #endif
- // --------- MPR.DLL ---------------
- HMODULE g_hmodMPR = NULL;
- #ifdef UNICODE
- DELAY_LOAD_WNET(g_hmodMPR, MPR, WNetGetConnectionA,
- (IN LPCSTR lpLocalName,
- OUT LPSTR lpRemoteName,
- IN OUT LPDWORD lpnLength),
- (lpLocalName, lpRemoteName, lpnLength));
- #else
- DELAY_LOAD_WNET(g_hmodMPR, MPR, WNetGetConnectionW,
- (IN LPCWSTR lpLocalName,
- OUT LPWSTR lpRemoteName,
- IN OUT LPDWORD lpnLength),
- (lpLocalName, lpRemoteName, lpnLength));
- #endif