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.

102 lines
2.8 KiB

  1. /***************************************************************************
  2. Name : FaxCfg.c
  3. Comment : Fax Configuration Interface (for profile wizard, property sheet
  4. and per-msg options)
  5. Functions :
  6. Created : 02/26/94
  7. Author : BruceK
  8. Contribs : Yoram (1/3/95): added permsg common stuff
  9. Yoram (3/24/95): added profile wizard interface
  10. ***************************************************************************/
  11. #define szAWFcfgDLL "awfxcg32.dll" // At Work Fax Configuration DLL name
  12. #define szAWFxAbDLL "awfxab32.dll" // At Work Fax Address Book DLL name
  13. /*
  14. * Wrapped IMAPIProp Interface declaration.
  15. */
  16. #undef INTERFACE
  17. #define INTERFACE struct _WMPROP
  18. #undef MAPIMETHOD_
  19. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, WMPROP_)
  20. MAPI_IUNKNOWN_METHODS(IMPL)
  21. MAPI_IMAPIPROP_METHODS(IMPL)
  22. #undef MAPIMETHOD_
  23. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, WMPROP_)
  24. MAPI_IUNKNOWN_METHODS(IMPL)
  25. MAPI_IMAPIPROP_METHODS(IMPL)
  26. #undef MAPIMETHOD_
  27. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  28. DECLARE_MAPI_INTERFACE(WMPROP_)
  29. {
  30. MAPI_IUNKNOWN_METHODS(IMPL)
  31. MAPI_IMAPIPROP_METHODS(IMPL)
  32. };
  33. // typedef for a standard Release function
  34. // typedef ULONG (STDMETHODCALLTYPE *LPFNRELEASE)(LPWMPROP);
  35. typedef MAPIMETHOD_(ULONG,LPFNRELEASE) (THIS);
  36. typedef struct _WMPROP
  37. {
  38. WMPROP_Vtbl * lpVtbl;
  39. /* Need to be the same as other objects */
  40. LONG lcInit;
  41. /* MAPI memory routines */
  42. LPALLOCATEBUFFER lpAllocBuff;
  43. LPALLOCATEMORE lpAllocMore;
  44. LPFREEBUFFER lpFreeBuff;
  45. HINSTANCE hInst;
  46. LPMALLOC lpMalloc;
  47. ULONG ulType;
  48. ULONG cbOptionData;
  49. LPBYTE lpbOptionData;
  50. LPMAPIPROP lpMAPIProp;
  51. /*
  52. * Various table used for displaying dialogs
  53. */
  54. LPTABLEDATA lpDetailsTable;
  55. LPTABLEDATA lpDDLBXTableCoverPages;
  56. /*
  57. * Used for faxcfg-XP communication
  58. */
  59. LPFNRELEASE lpfnFaxcfgRelease;
  60. HINSTANCE hlibPerMsg;
  61. } WMPROP, FAR *LPWMPROP;
  62. // MAWF configuration property sheet typedef and function pointer
  63. typedef BOOL (*LPFNMAWFSETTINGSDIALOG)(HINSTANCE, HWND, DWORD, WORD);
  64. // the per-msg options entry points
  65. typedef BOOL (*LPFNPERMSGOPTIONS)( LPMAPIPROP,HINSTANCE,LPMALLOC,ULONG,ULONG,LPBYTE,
  66. LPMAPISUP, LPWMPROP FAR *,LPFNRELEASE);
  67. typedef HRESULT (*LPFNGETPROFILEMSGPROPS)(LPMAPISUP, LPMAPIUID, ULONG *, LPSPropValue *);
  68. // the MAPI profile wizard interface between awfxcg32 and awfaxp32
  69. typedef struct WIZINFO
  70. {
  71. LPMAPIPROP lpMapiProp; // object into which we store the properties
  72. HINSTANCE hInst; // The instance of the provider DLL
  73. LPMAPISUP lpMAPISup; // a MAPI support object
  74. } WIZINFO, *LPWIZINFO;