Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.3 KiB

  1. /*++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. utils.h
  5. Abstract:
  6. Utility functions.
  7. Author:
  8. Paul M Midgen (pmidge) 12-January-2001
  9. Revision History:
  10. 12-January-2001 pmidge
  11. Created
  12. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--*/
  13. #ifndef _UTILS_H_
  14. #define _UTILS_H_
  15. #define CALLBACK_HANDLE_MAP 0x00
  16. #define CALLBACK_HANDLE_UNMAP 0x01
  17. #define CALLBACK_HANDLE_GET 0x02
  18. // exception handling
  19. int exception_filter(PEXCEPTION_POINTERS pep);
  20. // file retrieval
  21. HANDLE __OpenFile(LPCWSTR path, DWORD mode, BOOL* bReadOnly);
  22. // general utility
  23. HRESULT ManageCallbackForHandle(HINTERNET hInet, IDispatch** ppCallback, DWORD dwAction);
  24. HRESULT GetTypeInfoFromName(LPCOLESTR name, ITypeLib* ptl, ITypeInfo** ppti);
  25. DISPID GetDispidFromName(PDISPIDTABLEENTRY pdt, DWORD cEntries, LPWSTR name);
  26. HRESULT HandleDispatchError(LPWSTR id, EXCEPINFO* pei, HRESULT hr);
  27. void AddRichErrorInfo(EXCEPINFO* pei, LPWSTR source, LPWSTR description, HRESULT error);
  28. DWORD GetHash(LPWSTR name);
  29. DWORD GetHash(LPSTR name);
  30. HRESULT ValidateDispatchArgs(REFIID riid, DISPPARAMS* pdp, VARIANT* pvr, UINT* pae);
  31. HRESULT ValidateInvokeFlags(WORD flags, WORD accesstype, BOOL bNotMethod);
  32. HRESULT ValidateArgCount(DISPPARAMS* pdp, DWORD needed, BOOL bHasOptionalArgs, DWORD optional);
  33. // type manipulation
  34. HRESULT ProcessWideStringParam(LPWSTR name, VARIANT* pvar, LPWSTR* ppwsz);
  35. HRESULT ProcessWideMultiStringParam(LPWSTR name, VARIANT* pvar, LPWSTR** pppwsz);
  36. HRESULT ProcessBufferParam(LPWSTR name, VARIANT* pvar, LPVOID* ppv, LPBOOL pbDidAlloc);
  37. HRESULT InvalidatePointer(POINTER pointer, void** ppv);
  38. DWORD_PTR GetBadPointer(void);
  39. DWORD_PTR GetFreedPointer(void);
  40. void MemsetByFlag(LPVOID pv, DWORD size, MEMSETFLAG mf);
  41. // string handling
  42. char* __strndup(const char* src, int len);
  43. char* __strdup(const char* src);
  44. WCHAR* __wstrndup(const WCHAR* src, int len);
  45. WCHAR* __wstrdup(const WCHAR* src);
  46. CHAR* __widetoansi(const WCHAR* pwsz);
  47. WCHAR* __ansitowide(const char* psz);
  48. BOOL __isempty(VARIANT var);
  49. BSTR __ansitobstr(LPCSTR src);
  50. BSTR __widetobstr(LPCWSTR wsrc);
  51. char* __unescape(char* str);
  52. #endif /* _UTILS_H_ */