Source code of Windows XP (NT5)
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.

82 lines
2.5 KiB

  1. //-----------------------------------------------------------------------------
  2. //
  3. // File: Win32IID.H
  4. // Copyright (C) 1994-1997 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. //
  8. //
  9. //-----------------------------------------------------------------------------
  10. #ifndef __WIN32IID_H
  11. #define __WIN32IID_H
  12. #include <ltapi.h>
  13. class CLocItemPtrArray;
  14. class CFile;
  15. class CResObj;
  16. class CLocItem;
  17. class C32File;
  18. extern const IID IID_ICreateResObj2;
  19. DECLARE_INTERFACE_(ICreateResObj2, IUnknown)
  20. {
  21. //
  22. // IUnknown standard interface.
  23. //
  24. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR*ppvObj) PURE;
  25. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  26. STDMETHOD_(ULONG, Release)(THIS) PURE;
  27. //
  28. // Standard Debugging interface.
  29. //
  30. STDMETHOD_(void, AssertValidInterface)(THIS) CONST_METHOD PURE;
  31. // Creates a CResObj for win32 resource processing
  32. //Inputs:
  33. // - A pointer to the file, prepositioned at the start of the
  34. // data area. A resource parser may read up to dwSize bytes,
  35. // as necessary to decide whether the resource can be handled.
  36. // - A pointer to a CLocItem object containing the type and Id of the item
  37. // - The size of the resource.
  38. // - An void pointer to unknown data to be passed from enumeration to generate
  39. //Return:
  40. // - A CResObj pointer or NULL if the type is not recognized
  41. STDMETHOD_(CResObj *, CreateResObj)(THIS_ C32File * p32File,
  42. CLocItem * pLocItem, DWORD dwSize, void * pvHeader) PURE;
  43. // Inform a sub parser that the main parser is creating a Win32
  44. // File.
  45. //Inputs: Pointer to the Win32 File created.
  46. // This is the same file that will be passed
  47. // to later Read. Write, etc... calls on CResObj
  48. //Return: void
  49. STDMETHOD_(void, OnCreateWin32File)(THIS_ C32File*) PURE;
  50. // Inform a sub parser that the main parser is destroying a Win32
  51. // File.
  52. //Inputs: Pointer to the Win32 File being destroyed
  53. //Return: void
  54. STDMETHOD_(void, OnDestroyWin32File)(THIS_ C32File*) PURE;
  55. // Inform a sub parser that a enumeration is just beginning
  56. STDMETHOD_(BOOL, OnBeginEnumerate)(THIS_ C32File*) PURE;
  57. // Inform a sub parser that a enumeration has just ended
  58. // bOK is TRUE for a successful end
  59. STDMETHOD_(BOOL, OnEndEnumerate)(THIS_ C32File*, BOOL bOK) PURE;
  60. // Inform a sub parser that a generate is just beginning
  61. STDMETHOD_(BOOL, OnBeginGenerate)(THIS_ C32File*) PURE;
  62. // Inform a sub parser that a generate has just ended
  63. // bOK is TRUE for a successful end
  64. STDMETHOD_(BOOL, OnEndGenerate)(THIS_ C32File*, BOOL bOK) PURE;
  65. };
  66. #endif // __WIN32IID_H