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

76 lines
3 KiB
C

/*
* comc.h - Shared routines description.
*/
/* Types
********/
/* input flags to MyExecute() */
typedef enum myexecute_in_flags
{
/*
* Adds double quotes around the given argument string on the generated
* command line if the argument string contains any white space.
*/
ME_IFL_QUOTE_ARGS = 0x0001,
/* flag combinations */
ALL_ME_IN_FLAGS = ME_IFL_QUOTE_ARGS
}
MYEXECUTE_IN_FLAGS;
/* Global Variables
*******************/
/* comc.c */
extern const char g_cszWhiteSpace[];
extern const char g_cszSlashes[];
extern const char g_cszPathSeparators[];
extern const char g_cszEditFlags[];
/* Prototypes
*************/
/* comc.c */
extern BOOL DataCopy(PCBYTE pcbyteSrc, ULONG ulcbLen, PBYTE *ppbyteDest);
extern BOOL StringCopy(PCSTR pcszSrc, PSTR *ppszCopy);
extern BOOL GetMIMETypeSubKey(PCSTR pcszMIMEType, PSTR pszSubKeyBuf, UINT ucSubKeyBufLen);
extern BOOL GetMIMEValue(PCSTR pcszMIMEType, PCSTR pcszValue, PDWORD pdwValueType, PBYTE pbyteValueBuf, PDWORD pdwcbValueBufLen);
extern BOOL GetFileTypeValue(PCSTR pcszExtension, PCSTR pcszSubKey, PCSTR pcszValue, PDWORD pdwValueType, PBYTE pbyteValueBuf, PDWORD pdwcbValueBufLen);
extern BOOL GetMIMEFileTypeValue(PCSTR pcszMIMEType, PCSTR pcszSubKey, PCSTR pcszValue, PDWORD pdwValueType, PBYTE pbyteValueBuf, PDWORD pdwcbValueBufLen);
extern BOOL MIME_IsExternalHandlerRegistered(PCSTR pcszMIMEType);
extern BOOL MIME_GetExtension(PCSTR pcszMIMEType, PSTR pszExtensionBuf, UINT ucExtensionBufLen);
extern BOOL MIME_GetMIMETypeFromExtension(PCSTR pcszPath, PSTR pszMIMETypeBuf, UINT ucMIMETypeBufLen);
extern void CatPath(PSTR pszPath, PCSTR pcszSubPath);
extern void MyLStrCpyN(PSTR pszDest, PCSTR pcszSrc, int ncb);
extern COMPARISONRESULT MapIntToComparisonResult(int nResult);
extern void TrimWhiteSpace(PSTR pszTrimMe);
extern void TrimSlashes(PSTR pszTrimMe);
extern void TrimString(PSTR pszTrimMe, PCSTR pszTrimChars);
extern PCSTR ExtractFileName(PCSTR pcszPathName);
extern PCSTR ExtractExtension(PCSTR pcszName);
extern LONG SetRegKeyValue(HKEY hkeyParent, PCSTR pcszSubKey, PCSTR pcszValue, DWORD dwType, PCBYTE lpcbyte, DWORD dwcb);;
extern LONG GetRegKeyValue(HKEY hkeyParent, PCSTR pcszSubKey, PCSTR pcszValue, PDWORD pdwValueType, PBYTE pbyteBuf, PDWORD pdwcbBufLen);
extern LONG GetRegKeyStringValue(HKEY hkeyParent, PCSTR pcszSubKey, PCSTR pcszValue, PSTR pszBuf, PDWORD pdwcbBufLen);
extern LONG GetDefaultRegKeyValue(HKEY hkeyParent, PCSTR pcszSubKey, PSTR pszBuf, PDWORD pdwcbBufLen);
extern HRESULT FullyQualifyPath(PCSTR pcszPath, PSTR pszFullyQualifiedPath, UINT ucFullyQualifiedPathBufLen);
extern HRESULT MyExecute(PCSTR pcszApp, PCSTR pcszArgs, DWORD dwInFlags);
extern BOOL GetClassDefaultVerb(PCSTR pcszClass, PSTR pszDefaultVerbBuf, UINT ucDefaultVerbBufLen);
extern BOOL GetPathDefaultVerb(PCSTR pcszPath, PSTR pszDefaultVerbBuf, UINT ucDefaultVerbBufLen);
extern BOOL ClassIsSafeToOpen(PCSTR pcszClass);
extern BOOL SetClassEditFlags(PCSTR pcszClass, DWORD dwFlags, BOOL bSet);
#ifdef DEBUG
extern BOOL IsFullPath(PCSTR pcszPath);
#endif /* DEBUG */