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
utils.cpp
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 4k
Category:
Windows Kernel
Development Platform:
Visual C++
- #include "stdafx.h"
- #pragma hdrstop
- #include <mshtml.h>
- // This isn't a typical delay load since it's called only if wininet
- // is already loaded in memory. Otherwise the call is dropped on the floor.
- // Defview did it this way I assume to keep WININET out of first boot time.
- BOOL MyInternetSetOption(HANDLE h, DWORD dw1, LPVOID lpv, DWORD dw2)
- {
- BOOL bRet = FALSE;
- HMODULE hmod = GetModuleHandle(TEXT("wininet.dll"));
- if (hmod)
- {
- typedef BOOL (*PFNINTERNETSETOPTIONA)(HANDLE h, DWORD dw1, LPVOID lpv, DWORD dw2);
- PFNINTERNETSETOPTIONA fp = (PFNINTERNETSETOPTIONA)GetProcAddress(hmod, "InternetSetOptionA");
- if (fp)
- {
- bRet = fp(h, dw1, lpv, dw2);
- }
- }
- return bRet;
- }
- // REVIEW: maybe just check (hwnd == GetShellWindow())
- STDAPI_(BOOL) IsDesktopWindow(HWND hwnd)
- {
- TCHAR szName[80];
- GetClassName(hwnd, szName, ARRAYSIZE(szName));
- if (!lstrcmp(szName, TEXT(STR_DESKTOPCLASS)))
- {
- return hwnd == GetShellWindow();
- }
- return FALSE;
- }
- // returns:
- // S_OK all is well, trust the enviornment we are in
- // S_FALSE or
- // E_ACCESSDENIED bad... don't expose local machine access
- STDAPI IsSafePage(IUnknown *punkSite)
- {
- // Return S_FALSE if we don't have a host site since we have no way of doing a
- // security check. This is as far as VB 5.0 apps get.
- if (!punkSite)
- return S_FALSE;
- HRESULT hr = E_ACCESSDENIED;
- WCHAR wszPath[MAX_PATH];
- wszPath[0] = 0;
- // ask the browser, for example we are in a .HTM doc
- IBrowserService* pbs;
- if (SUCCEEDED(IUnknown_QueryService(punkSite, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &pbs))))
- {
- LPITEMIDLIST pidl;
- if (SUCCEEDED(pbs->GetPidl(&pidl)))
- {
- DWORD dwAttribs = SFGAO_FOLDER;
- if (SUCCEEDED(SHGetNameAndFlagsW(pidl, SHGDN_FORPARSING, wszPath, ARRAYSIZE(wszPath), &dwAttribs))
- && (dwAttribs & SFGAO_FOLDER)) // This is a folder. So, wszPath should be the path for it's webview template
- {
- // find the template path from webview, for example a .HTT file
- IOleCommandTarget *pct;
- if (SUCCEEDED(IUnknown_QueryService(punkSite, SID_DefView, IID_PPV_ARG(IOleCommandTarget, &pct))))
- {
- VARIANT vPath;
- vPath.vt = VT_EMPTY;
- if (pct->Exec(&CGID_DefView, DVCMDID_GETTEMPLATEDIRNAME, 0, NULL, &vPath) == S_OK)
- {
- if (vPath.vt == VT_BSTR && vPath.bstrVal)
- {
- DWORD cchPath = ARRAYSIZE(wszPath);
- if (S_OK != PathCreateFromUrlW(vPath.bstrVal, wszPath, &cchPath, 0))
- {
- // it might not be an URL, in this case it is a file path
- StrCpyNW(wszPath, vPath.bstrVal, ARRAYSIZE(wszPath));
- }
- }
- VariantClear(&vPath);
- }
- pct->Release();
- }
- }
- ILFree(pidl);
- }
- pbs->Release();
- }
- else
- {
- ASSERT(0); // no browser, where are we?
- }
- if (wszPath[0])
- hr = SHRegisterValidateTemplate(wszPath, SHRVT_VALIDATE | SHRVT_PROMPTUSER | SHRVT_REGISTERIFPROMPTOK);
- return hr;
- }