windows-nt/Source/XPSP1/NT/shell/shell32/shell.h
2020-09-26 16:20:57 +08:00

106 lines
3.8 KiB
C

/*
* shell.h
*
* Header file for shell association database management functions
*/
#include <shellapi.h> // make sure we don't conflict
#include "winuserp.h"
#include "wowshlp.h"
#ifndef PUBLIC_ONLY
// HANDLE hInstance; // hinstance of DLL
#define SE_ERR_FNF 2 // ShellExec() error returns
#define SE_ERR_PNF 3
#define SE_ERR_OOM 8
BOOL APIENTRY RegisterShellHook(HWND, BOOL);
#endif // closes #ifndef PUBLIC_ONLY
//****************************************************************************
// THIS INFORMATION IS PUBLIC
#define CP_WINDOWS 1004 // windows code page
BOOL APIENTRY RegenerateUserEnvironment(PVOID *pPrevEnv,
BOOL bSetCurrentEnv);
int SheGetCurDrive(VOID);
int SheSetCurDrive(int iDrive);
int SheFullPathA(CHAR *fname, DWORD sizpath, CHAR *buf);
int SheGetDirA(int iDrive, CHAR *str);
int SheChangeDirA(register CHAR *newdir);
int SheFullPathW(WCHAR *fname, DWORD sizpath, WCHAR *buf);
int SheGetDirW(INT iDrive, WCHAR *str);
int SheChangeDirW(register WCHAR *newdir);
BOOL SheGetDirExW(LPWSTR lpszCurDisk, LPDWORD lpcchCurDir,LPWSTR lpszCurDir);
INT SheChangeDirExW(register WCHAR *newdir);
INT SheChangeDirExA(register CHAR *newdir);
INT SheGetPathOffsetW(LPWSTR lpszDir);
HANDLE APIENTRY InternalExtractIconListA(HANDLE hInst, LPSTR lpszExeFileName, LPINT lpnIcons);
HANDLE APIENTRY InternalExtractIconListW(HANDLE hInst, LPWSTR lpszExeFileName, LPINT lpnIcons);
HICON APIENTRY ExtractAssociatedIconA(HINSTANCE hInst,LPSTR lpIconPath,LPWORD lpiIcon);
HICON APIENTRY ExtractAssociatedIconW(HINSTANCE hInst,LPWSTR lpIconPath,LPWORD lpiIcon);
HICON APIENTRY ExtractAssociatedIconExA(HINSTANCE hInst,LPSTR lpIconPath,LPWORD lpiIconIndex, LPWORD lpiIconId);
HICON APIENTRY ExtractAssociatedIconExW(HINSTANCE hInst,LPWSTR lpIconPath,LPWORD lpiIconIndex, LPWORD lpiIconId);
WORD APIENTRY ExtractIconResInfoA(HANDLE hInst,LPSTR lpszFileName,WORD wIconIndex,LPWORD lpwSize,LPHANDLE lphIconRes);
WORD APIENTRY ExtractIconResInfoW(HANDLE hInst,LPWSTR lpszFileName,WORD wIconIndex,LPWORD lpwSize,LPHANDLE lphIconRes);
VOID APIENTRY CheckEscapesA(LPSTR lpFileA, DWORD cch);
VOID APIENTRY CheckEscapesW(LPWSTR szFile, DWORD cch);
LPSTR APIENTRY SheRemoveQuotesA(LPSTR sz);
LPWSTR APIENTRY SheRemoveQuotesW(LPWSTR sz);
BOOL APIENTRY SheShortenPathA(LPSTR pPath, BOOL bShorten);
BOOL APIENTRY SheShortenPathW(LPWSTR pPath, BOOL bShorten);
BOOL SheConvertPathW(LPWSTR lpApp, LPWSTR lpFile, UINT cchCmdBuf);
DWORD ExtractVersionResource16W(LPCWSTR lpwstrFilename, LPHANDLE lphData);
#ifndef UNICODE
#define RealShellExecute RealShellExecuteA
#define RealShellExecuteEx RealShellExecuteExA
#define SheFullPath SheFullPathA
#define SheGetDir SheGetDirA
#define SheChangeDir SheChangeDirA
#define InternalExtractIconList InternalExtractIconListA
#define ExtractAssociatedIcon ExtractAssociatedIconA
#define ExtractAssociatedIconEx ExtractAssociatedIconExA
#define ExtractIconResInfo ExtractIconResInfoA
#define CheckEscapes CheckEscapesA
#define SheRemoveQuotes SheRemoveQuotesA
#define SheShortenPath SheShortenPathA
#else
#define RealShellExecute RealShellExecuteW
#define RealShellExecuteEx RealShellExecuteExW
#define SheFullPath SheFullPathW
#define SheGetDir SheGetDirW
#define SheChangeDir SheChangeDirW
#define InternalExtractIconList InternalExtractIconListW
#define ExtractAssociatedIcon ExtractAssociatedIconW
#define ExtractAssociatedIconEx ExtractAssociatedIconExW
#define ExtractIconResInfo ExtractIconResInfoW
#define CheckEscapes CheckEscapesW
#define SheRemoveQuotes SheRemoveQuotesW
#define SheShortenPath SheShortenPathW
#endif //unicode
#undef ExpandEnvironmentStrings
#define ExpandEnvironmentStrings #error "Use SHExpandEnvironmentStrings instead"