// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// C++ TLBWRTR : 1.28
// File generated on 2/14/2006 12:34:32 PM from Type Library described below.

// ************************************************************************  //
// Type Lib: c:\Program Files\Microsoft OfficeXP\Office10\MSOUTL.olb (1)
// LIBID: {00062FFF-0000-0000-C000-000000000046}
// LCID: 0
// Helpfile: c:\Program Files\Microsoft OfficeXP\Office10\VBAOL10.CHM
// HelpString: Microsoft Outlook 10.0 Object Library
// DepndLst: 
//   (1) v2.0 stdole, (C:\WINDOWS\System32\stdole2.tlb)
//   (2) v2.2 Office, (C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL)
// ************************************************************************ //
#ifndef   Outlook_XPH
#define   Outlook_XPH

#pragma option push -b -w-inl

#if !defined(__UTILCLS_H)
#include <utilcls.h>
#endif
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0700)
//
// The code generated by the TLIBIMP utility or the Import|TypeLibrary 
// and Import|ActiveX feature of C++Builder rely on specific versions of
// the header file UTILCLS.H found in the INCLUDE\VCL directory. If an 
// older version of the file is detected, you probably need an update/patch.
//
#error "This file requires a newer version of the header UTILCLS.H" \
       "You need to apply an update/patch to your copy of C++Builder"
#endif
#include <olectl.h>
#include <ocidl.h>
#if defined(USING_ATLVCL) || defined(USING_ATL)
#if !defined(__TLB_NO_EVENT_WRAPPERS)
#include <atl/atlmod.h>
#endif
#endif
#include "Office_XP.h"


// *********************************************************************//
// Forward reference of some VCL types (to avoid including STDVCL.HPP)    
// *********************************************************************//
namespace Stdvcl {class IStrings; class IStringsDisp;}
using namespace Stdvcl;
typedef TComInterface<IStrings> IStringsPtr;
typedef TComInterface<IStringsDisp> IStringsDispPtr;

namespace Outlook_xp
{

// *********************************************************************//
// HelpString: Microsoft Outlook 10.0 Object Library
// Version:    9.1
// *********************************************************************//


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLSID_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
extern __declspec (package) const GUID LIBID_Outlook;
extern __declspec (package) const GUID GUID_OlActionCopyLike;
extern __declspec (package) const GUID GUID_OlActionReplyStyle;
extern __declspec (package) const GUID GUID_OlActionResponseStyle;
extern __declspec (package) const GUID GUID_OlActionShowOn;
extern __declspec (package) const GUID GUID_OlAttachmentType;
extern __declspec (package) const GUID GUID_OlBusyStatus;
extern __declspec (package) const GUID GUID_OlDaysOfWeek;
extern __declspec (package) const GUID GUID_OlDefaultFolders;
extern __declspec (package) const GUID GUID_OlDisplayType;
extern __declspec (package) const GUID GUID_OlEditorType;
extern __declspec (package) const GUID GUID_OlFlagStatus;
extern __declspec (package) const GUID GUID_OlFolderDisplayMode;
extern __declspec (package) const GUID GUID_OlFormRegistry;
extern __declspec (package) const GUID GUID_OlGender;
extern __declspec (package) const GUID GUID_OlImportance;
extern __declspec (package) const GUID GUID_OlInspectorClose;
extern __declspec (package) const GUID GUID_OlItemType;
extern __declspec (package) const GUID GUID_OlJournalRecipientType;
extern __declspec (package) const GUID GUID_OlMailingAddress;
extern __declspec (package) const GUID GUID_OlMailRecipientType;
extern __declspec (package) const GUID GUID_OlMeetingRecipientType;
extern __declspec (package) const GUID GUID_OlMeetingResponse;
extern __declspec (package) const GUID GUID_OlMeetingStatus;
extern __declspec (package) const GUID GUID_OlNetMeetingType;
extern __declspec (package) const GUID GUID_OlNoteColor;
extern __declspec (package) const GUID GUID_OlObjectClass;
extern __declspec (package) const GUID GUID_OlOutlookBarViewType;
extern __declspec (package) const GUID GUID_OlPane;
extern __declspec (package) const GUID GUID_OlRecurrenceState;
extern __declspec (package) const GUID GUID_OlRecurrenceType;
extern __declspec (package) const GUID GUID_OlRemoteStatus;
extern __declspec (package) const GUID GUID_OlResponseStatus;
extern __declspec (package) const GUID GUID_OlSaveAsType;
extern __declspec (package) const GUID GUID_OlSensitivity;
extern __declspec (package) const GUID GUID_OlSortOrder;
extern __declspec (package) const GUID GUID_OlTaskDelegationState;
extern __declspec (package) const GUID GUID_OlTaskOwnership;
extern __declspec (package) const GUID GUID_OlTaskRecipientType;
extern __declspec (package) const GUID GUID_OlTaskResponse;
extern __declspec (package) const GUID GUID_OlTaskStatus;
extern __declspec (package) const GUID GUID_OlTrackingStatus;
extern __declspec (package) const GUID GUID_OlUserPropertyType;
extern __declspec (package) const GUID GUID_OlWindowState;
extern __declspec (package) const GUID GUID_OlSyncState;
extern __declspec (package) const GUID GUID_OlBodyFormat;
extern __declspec (package) const GUID GUID_OlDownloadState;
extern __declspec (package) const GUID GUID_OlOfficeDocItemsType;
extern __declspec (package) const GUID GUID_OlViewSaveOption;
extern __declspec (package) const GUID GUID_OlViewType;
extern __declspec (package) const GUID IID_Action;
extern __declspec (package) const GUID IID__Application;
extern __declspec (package) const GUID IID__NameSpace;
extern __declspec (package) const GUID IID_Recipient;
extern __declspec (package) const GUID IID_AddressEntry;
extern __declspec (package) const GUID IID_AddressEntries;
extern __declspec (package) const GUID IID__Folders;
extern __declspec (package) const GUID IID_MAPIFolder;
extern __declspec (package) const GUID IID__Items;
extern __declspec (package) const GUID IID__Explorer;
extern __declspec (package) const GUID IID_Panes;
extern __declspec (package) const GUID IID_Selection;
extern __declspec (package) const GUID IID_View;
extern __declspec (package) const GUID IID__Views;
extern __declspec (package) const GUID IID_AddressLists;
extern __declspec (package) const GUID IID_AddressList;
extern __declspec (package) const GUID IID_SyncObjects;
extern __declspec (package) const GUID IID__SyncObject;
extern __declspec (package) const GUID DIID_SyncObjectEvents;
extern __declspec (package) const GUID CLSID_SyncObject;
extern __declspec (package) const GUID IID__Inspector;
extern __declspec (package) const GUID IID__Explorers;
extern __declspec (package) const GUID DIID_ExplorerEvents;
extern __declspec (package) const GUID DIID_ExplorerEvents_10;
extern __declspec (package) const GUID CLSID_Explorer;
extern __declspec (package) const GUID IID__Inspectors;
extern __declspec (package) const GUID DIID_InspectorEvents;
extern __declspec (package) const GUID DIID_InspectorEvents_10;
extern __declspec (package) const GUID CLSID_Inspector;
extern __declspec (package) const GUID IID_Search;
extern __declspec (package) const GUID IID__Results;
extern __declspec (package) const GUID IID__Reminders;
extern __declspec (package) const GUID IID__Reminder;
extern __declspec (package) const GUID IID_Actions;
extern __declspec (package) const GUID DIID_ApplicationEvents;
extern __declspec (package) const GUID IID_PropertyPages;
extern __declspec (package) const GUID IID__AppointmentItem;
extern __declspec (package) const GUID IID_Attachments;
extern __declspec (package) const GUID IID_Attachment;
extern __declspec (package) const GUID IID_FormDescription;
extern __declspec (package) const GUID IID_UserProperties;
extern __declspec (package) const GUID IID_UserProperty;
extern __declspec (package) const GUID IID_Recipients;
extern __declspec (package) const GUID IID__MailItem;
extern __declspec (package) const GUID DIID_ItemEvents;
extern __declspec (package) const GUID IID_Links;
extern __declspec (package) const GUID IID_Link;
extern __declspec (package) const GUID IID_ItemProperties;
extern __declspec (package) const GUID IID_ItemProperty;
extern __declspec (package) const GUID DIID_ItemEvents_10;
extern __declspec (package) const GUID CLSID_MailItem;
extern __declspec (package) const GUID IID_RecurrencePattern;
extern __declspec (package) const GUID IID_Exceptions;
extern __declspec (package) const GUID IID_Exception;
extern __declspec (package) const GUID CLSID_AppointmentItem;
extern __declspec (package) const GUID IID__MeetingItem;
extern __declspec (package) const GUID CLSID_MeetingItem;
extern __declspec (package) const GUID IID__ContactItem;
extern __declspec (package) const GUID IID__DistListItem;
extern __declspec (package) const GUID IID__DocumentItem;
extern __declspec (package) const GUID DIID_ExplorersEvents;
extern __declspec (package) const GUID DIID_FoldersEvents;
extern __declspec (package) const GUID DIID_InspectorsEvents;
extern __declspec (package) const GUID DIID_ItemsEvents;
extern __declspec (package) const GUID IID__JournalItem;
extern __declspec (package) const GUID DIID_NameSpaceEvents;
extern __declspec (package) const GUID IID__NoteItem;
extern __declspec (package) const GUID IID_OutlookBarGroup;
extern __declspec (package) const GUID IID__OutlookBarShortcuts;
extern __declspec (package) const GUID IID_OutlookBarShortcut;
extern __declspec (package) const GUID IID__OutlookBarGroups;
extern __declspec (package) const GUID DIID_OutlookBarGroupsEvents;
extern __declspec (package) const GUID IID__OutlookBarPane;
extern __declspec (package) const GUID IID_OutlookBarStorage;
extern __declspec (package) const GUID DIID_OutlookBarPaneEvents;
extern __declspec (package) const GUID DIID_OutlookBarShortcutsEvents;
extern __declspec (package) const GUID IID_PropertyPage;
extern __declspec (package) const GUID IID_PropertyPageSite;
extern __declspec (package) const GUID IID_Pages;
extern __declspec (package) const GUID IID__PostItem;
extern __declspec (package) const GUID IID__RemoteItem;
extern __declspec (package) const GUID IID__ReportItem;
extern __declspec (package) const GUID IID__TaskItem;
extern __declspec (package) const GUID CLSID_TaskItem;
extern __declspec (package) const GUID IID__TaskRequestAcceptItem;
extern __declspec (package) const GUID IID__TaskRequestDeclineItem;
extern __declspec (package) const GUID IID__TaskRequestItem;
extern __declspec (package) const GUID IID__TaskRequestUpdateItem;
extern __declspec (package) const GUID DIID_ApplicationEvents_10;
extern __declspec (package) const GUID DIID_ResultsEvents;
extern __declspec (package) const GUID DIID__ViewsEvents;
extern __declspec (package) const GUID DIID_ReminderCollectionEvents;
extern __declspec (package) const GUID CLSID_OutlookApplication;
extern __declspec (package) const GUID CLSID_ContactItem;
extern __declspec (package) const GUID CLSID_DistListItem;
extern __declspec (package) const GUID CLSID_DocumentItem;
extern __declspec (package) const GUID CLSID_Explorers;
extern __declspec (package) const GUID CLSID_Inspectors;
extern __declspec (package) const GUID CLSID_Folders;
extern __declspec (package) const GUID CLSID_Items;
extern __declspec (package) const GUID CLSID_JournalItem;
extern __declspec (package) const GUID CLSID_NameSpace;
extern __declspec (package) const GUID CLSID_NoteItem;
extern __declspec (package) const GUID CLSID_OutlookBarGroups;
extern __declspec (package) const GUID CLSID_OutlookBarPane;
extern __declspec (package) const GUID CLSID_OutlookBarShortcuts;
extern __declspec (package) const GUID CLSID_PostItem;
extern __declspec (package) const GUID CLSID_RemoteItem;
extern __declspec (package) const GUID CLSID_ReportItem;
extern __declspec (package) const GUID CLSID_TaskRequestAcceptItem;
extern __declspec (package) const GUID CLSID_TaskRequestDeclineItem;
extern __declspec (package) const GUID CLSID_TaskRequestItem;
extern __declspec (package) const GUID CLSID_TaskRequestUpdateItem;
extern __declspec (package) const GUID IID__IRecipientControl;
extern __declspec (package) const GUID DIID__DRecipientControl;
extern __declspec (package) const GUID DIID__DRecipientControlEvents;
extern __declspec (package) const GUID CLSID__RecipientControl;
extern __declspec (package) const GUID IID__IDocSiteControl;
extern __declspec (package) const GUID DIID__DDocSiteControl;
extern __declspec (package) const GUID DIID__DDocSiteControlEvents;
extern __declspec (package) const GUID CLSID__DocSiteControl;
extern __declspec (package) const GUID IID__IDpxCtrl;
extern __declspec (package) const GUID CLSID__DpxCtrl;
extern __declspec (package) const GUID IID__IPageWrapCtrl;
extern __declspec (package) const GUID DIID__DPageWrapCtrl;
extern __declspec (package) const GUID DIID__DPageWrapCtrlEvents;
extern __declspec (package) const GUID CLSID__PageWrapCtrl;
extern __declspec (package) const GUID IID__IInspectorCtrl;
extern __declspec (package) const GUID DIID__DInspectorCtrl;
extern __declspec (package) const GUID DIID__DInspectorEvents;
extern __declspec (package) const GUID CLSID__InspectorCtrl;
extern __declspec (package) const GUID DIID_DDataSourceObject;
extern __declspec (package) const GUID CLSID_DataSourceObject;
extern __declspec (package) const GUID CLSID_Results;
extern __declspec (package) const GUID CLSID_Views;
extern __declspec (package) const GUID CLSID_Reminder;
extern __declspec (package) const GUID CLSID_Reminders;

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
enum      OlActionCopyLike;
enum      OlActionReplyStyle;
enum      OlActionResponseStyle;
enum      OlActionShowOn;
enum      OlAttachmentType;
enum      OlBusyStatus;
enum      OlDaysOfWeek;
enum      OlDefaultFolders;
enum      OlDisplayType;
enum      OlEditorType;
enum      OlFlagStatus;
enum      OlFolderDisplayMode;
enum      OlFormRegistry;
enum      OlGender;
enum      OlImportance;
enum      OlInspectorClose;
enum      OlItemType;
enum      OlJournalRecipientType;
enum      OlMailingAddress;
enum      OlMailRecipientType;
enum      OlMeetingRecipientType;
enum      OlMeetingResponse;
enum      OlMeetingStatus;
enum      OlNetMeetingType;
enum      OlNoteColor;
enum      OlObjectClass;
enum      OlOutlookBarViewType;
enum      OlPane;
enum      OlRecurrenceState;
enum      OlRecurrenceType;
enum      OlRemoteStatus;
enum      OlResponseStatus;
enum      OlSaveAsType;
enum      OlSensitivity;
enum      OlSortOrder;
enum      OlTaskDelegationState;
enum      OlTaskOwnership;
enum      OlTaskRecipientType;
enum      OlTaskResponse;
enum      OlTaskStatus;
enum      OlTrackingStatus;
enum      OlUserPropertyType;
enum      OlWindowState;
enum      OlSyncState;
enum      OlBodyFormat;
enum      OlDownloadState;
enum      OlOfficeDocItemsType;
enum      OlViewSaveOption;
enum      OlViewType;
interface DECLSPEC_UUID("{00063043-0000-0000-C000-000000000046}") Action;
typedef TComInterface<Action, &IID_Action> ActionPtr;

interface DECLSPEC_UUID("{00063001-0000-0000-C000-000000000046}") _Application;
typedef TComInterface<_Application, &IID__Application> _ApplicationPtr;

interface DECLSPEC_UUID("{00063002-0000-0000-C000-000000000046}") _NameSpace;
typedef TComInterface<_NameSpace, &IID__NameSpace> _NameSpacePtr;

interface DECLSPEC_UUID("{00063045-0000-0000-C000-000000000046}") Recipient;
typedef TComInterface<Recipient, &IID_Recipient> RecipientPtr;

interface DECLSPEC_UUID("{0006304B-0000-0000-C000-000000000046}") AddressEntry;
typedef TComInterface<AddressEntry, &IID_AddressEntry> AddressEntryPtr;

interface DECLSPEC_UUID("{0006304A-0000-0000-C000-000000000046}") AddressEntries;
typedef TComInterface<AddressEntries, &IID_AddressEntries> AddressEntriesPtr;

interface DECLSPEC_UUID("{00063040-0000-0000-C000-000000000046}") _Folders;
typedef TComInterface<_Folders, &IID__Folders> _FoldersPtr;

interface DECLSPEC_UUID("{00063006-0000-0000-C000-000000000046}") MAPIFolder;
typedef TComInterface<MAPIFolder, &IID_MAPIFolder> MAPIFolderPtr;

interface DECLSPEC_UUID("{00063041-0000-0000-C000-000000000046}") _Items;
typedef TComInterface<_Items, &IID__Items> _ItemsPtr;

interface DECLSPEC_UUID("{00063003-0000-0000-C000-000000000046}") _Explorer;
typedef TComInterface<_Explorer, &IID__Explorer> _ExplorerPtr;

interface DECLSPEC_UUID("{00063009-0000-0000-C000-000000000046}") Panes;
typedef TComInterface<Panes, &IID_Panes> PanesPtr;

interface DECLSPEC_UUID("{00063087-0000-0000-C000-000000000046}") Selection;
typedef TComInterface<Selection, &IID_Selection> SelectionPtr;

interface DECLSPEC_UUID("{00063095-0000-0000-C000-000000000046}") View;
typedef TComInterface<View, &IID_View> ViewPtr;

interface DECLSPEC_UUID("{0006308D-0000-0000-C000-000000000046}") _Views;
typedef TComInterface<_Views, &IID__Views> _ViewsPtr;

interface DECLSPEC_UUID("{00063048-0000-0000-C000-000000000046}") AddressLists;
typedef TComInterface<AddressLists, &IID_AddressLists> AddressListsPtr;

interface DECLSPEC_UUID("{00063049-0000-0000-C000-000000000046}") AddressList;
typedef TComInterface<AddressList, &IID_AddressList> AddressListPtr;

interface DECLSPEC_UUID("{00063086-0000-0000-C000-000000000046}") SyncObjects;
typedef TComInterface<SyncObjects, &IID_SyncObjects> SyncObjectsPtr;

interface DECLSPEC_UUID("{00063083-0000-0000-C000-000000000046}") _SyncObject;
typedef TComInterface<_SyncObject, &IID__SyncObject> _SyncObjectPtr;

interface DECLSPEC_UUID("{00063085-0000-0000-C000-000000000046}") SyncObjectEvents;
typedef TComInterface<SyncObjectEvents, &DIID_SyncObjectEvents> SyncObjectEventsPtr;

interface DECLSPEC_UUID("{00063005-0000-0000-C000-000000000046}") _Inspector;
typedef TComInterface<_Inspector, &IID__Inspector> _InspectorPtr;

interface DECLSPEC_UUID("{0006300A-0000-0000-C000-000000000046}") _Explorers;
typedef TComInterface<_Explorers, &IID__Explorers> _ExplorersPtr;

interface DECLSPEC_UUID("{0006304F-0000-0000-C000-000000000046}") ExplorerEvents;
typedef TComInterface<ExplorerEvents, &DIID_ExplorerEvents> ExplorerEventsPtr;

interface DECLSPEC_UUID("{0006300F-0000-0000-C000-000000000046}") ExplorerEvents_10;
typedef TComInterface<ExplorerEvents_10, &DIID_ExplorerEvents_10> ExplorerEvents_10Ptr;

interface DECLSPEC_UUID("{00063008-0000-0000-C000-000000000046}") _Inspectors;
typedef TComInterface<_Inspectors, &IID__Inspectors> _InspectorsPtr;

interface DECLSPEC_UUID("{0006307D-0000-0000-C000-000000000046}") InspectorEvents;
typedef TComInterface<InspectorEvents, &DIID_InspectorEvents> InspectorEventsPtr;

interface DECLSPEC_UUID("{0006302A-0000-0000-C000-000000000046}") InspectorEvents_10;
typedef TComInterface<InspectorEvents_10, &DIID_InspectorEvents_10> InspectorEvents_10Ptr;

interface DECLSPEC_UUID("{0006300B-0000-0000-C000-000000000046}") Search;
typedef TComInterface<Search, &IID_Search> SearchPtr;

interface DECLSPEC_UUID("{0006300C-0000-0000-C000-000000000046}") _Results;
typedef TComInterface<_Results, &IID__Results> _ResultsPtr;

interface DECLSPEC_UUID("{000630B1-0000-0000-C000-000000000046}") _Reminders;
typedef TComInterface<_Reminders, &IID__Reminders> _RemindersPtr;

interface DECLSPEC_UUID("{000630B0-0000-0000-C000-000000000046}") _Reminder;
typedef TComInterface<_Reminder, &IID__Reminder> _ReminderPtr;

interface DECLSPEC_UUID("{0006303E-0000-0000-C000-000000000046}") Actions;
typedef TComInterface<Actions, &IID_Actions> ActionsPtr;

interface DECLSPEC_UUID("{0006304E-0000-0000-C000-000000000046}") ApplicationEvents;
typedef TComInterface<ApplicationEvents, &DIID_ApplicationEvents> ApplicationEventsPtr;

interface DECLSPEC_UUID("{00063080-0000-0000-C000-000000000046}") PropertyPages;
typedef TComInterface<PropertyPages, &IID_PropertyPages> PropertyPagesPtr;

interface DECLSPEC_UUID("{00063033-0000-0000-C000-000000000046}") _AppointmentItem;
typedef TComInterface<_AppointmentItem, &IID__AppointmentItem> _AppointmentItemPtr;

interface DECLSPEC_UUID("{0006303C-0000-0000-C000-000000000046}") Attachments;
typedef TComInterface<Attachments, &IID_Attachments> AttachmentsPtr;

interface DECLSPEC_UUID("{00063007-0000-0000-C000-000000000046}") Attachment;
typedef TComInterface<Attachment, &IID_Attachment> AttachmentPtr;

interface DECLSPEC_UUID("{00063046-0000-0000-C000-000000000046}") FormDescription;
typedef TComInterface<FormDescription, &IID_FormDescription> FormDescriptionPtr;

interface DECLSPEC_UUID("{0006303D-0000-0000-C000-000000000046}") UserProperties;
typedef TComInterface<UserProperties, &IID_UserProperties> UserPropertiesPtr;

interface DECLSPEC_UUID("{00063042-0000-0000-C000-000000000046}") UserProperty;
typedef TComInterface<UserProperty, &IID_UserProperty> UserPropertyPtr;

interface DECLSPEC_UUID("{0006303B-0000-0000-C000-000000000046}") Recipients;
typedef TComInterface<Recipients, &IID_Recipients> RecipientsPtr;

interface DECLSPEC_UUID("{00063034-0000-0000-C000-000000000046}") _MailItem;
typedef TComInterface<_MailItem, &IID__MailItem> _MailItemPtr;

interface DECLSPEC_UUID("{0006303A-0000-0000-C000-000000000046}") ItemEvents;
typedef TComInterface<ItemEvents, &DIID_ItemEvents> ItemEventsPtr;

interface DECLSPEC_UUID("{0006308A-0000-0000-C000-000000000046}") Links;
typedef TComInterface<Links, &IID_Links> LinksPtr;

interface DECLSPEC_UUID("{00063089-0000-0000-C000-000000000046}") Link;
typedef TComInterface<Link, &IID_Link> LinkPtr;

interface DECLSPEC_UUID("{000630A8-0000-0000-C000-000000000046}") ItemProperties;
typedef TComInterface<ItemProperties, &IID_ItemProperties> ItemPropertiesPtr;

interface DECLSPEC_UUID("{000630A7-0000-0000-C000-000000000046}") ItemProperty;
typedef TComInterface<ItemProperty, &IID_ItemProperty> ItemPropertyPtr;

interface DECLSPEC_UUID("{0006302B-0000-0000-C000-000000000046}") ItemEvents_10;
typedef TComInterface<ItemEvents_10, &DIID_ItemEvents_10> ItemEvents_10Ptr;

interface DECLSPEC_UUID("{00063044-0000-0000-C000-000000000046}") RecurrencePattern;
typedef TComInterface<RecurrencePattern, &IID_RecurrencePattern> RecurrencePatternPtr;

interface DECLSPEC_UUID("{0006304C-0000-0000-C000-000000000046}") Exceptions;
typedef TComInterface<Exceptions, &IID_Exceptions> ExceptionsPtr;

interface DECLSPEC_UUID("{0006304D-0000-0000-C000-000000000046}") Exception;
typedef TComInterface<Exception, &IID_Exception> ExceptionPtr;

interface DECLSPEC_UUID("{00063062-0000-0000-C000-000000000046}") _MeetingItem;
typedef TComInterface<_MeetingItem, &IID__MeetingItem> _MeetingItemPtr;

interface DECLSPEC_UUID("{00063021-0000-0000-C000-000000000046}") _ContactItem;
typedef TComInterface<_ContactItem, &IID__ContactItem> _ContactItemPtr;

interface DECLSPEC_UUID("{00063081-0000-0000-C000-000000000046}") _DistListItem;
typedef TComInterface<_DistListItem, &IID__DistListItem> _DistListItemPtr;

interface DECLSPEC_UUID("{00063020-0000-0000-C000-000000000046}") _DocumentItem;
typedef TComInterface<_DocumentItem, &IID__DocumentItem> _DocumentItemPtr;

interface DECLSPEC_UUID("{00063078-0000-0000-C000-000000000046}") ExplorersEvents;
typedef TComInterface<ExplorersEvents, &DIID_ExplorersEvents> ExplorersEventsPtr;

interface DECLSPEC_UUID("{00063076-0000-0000-C000-000000000046}") FoldersEvents;
typedef TComInterface<FoldersEvents, &DIID_FoldersEvents> FoldersEventsPtr;

interface DECLSPEC_UUID("{00063079-0000-0000-C000-000000000046}") InspectorsEvents;
typedef TComInterface<InspectorsEvents, &DIID_InspectorsEvents> InspectorsEventsPtr;

interface DECLSPEC_UUID("{00063077-0000-0000-C000-000000000046}") ItemsEvents;
typedef TComInterface<ItemsEvents, &DIID_ItemsEvents> ItemsEventsPtr;

interface DECLSPEC_UUID("{00063022-0000-0000-C000-000000000046}") _JournalItem;
typedef TComInterface<_JournalItem, &IID__JournalItem> _JournalItemPtr;

interface DECLSPEC_UUID("{0006308C-0000-0000-C000-000000000046}") NameSpaceEvents;
typedef TComInterface<NameSpaceEvents, &DIID_NameSpaceEvents> NameSpaceEventsPtr;

interface DECLSPEC_UUID("{00063025-0000-0000-C000-000000000046}") _NoteItem;
typedef TComInterface<_NoteItem, &IID__NoteItem> _NoteItemPtr;

interface DECLSPEC_UUID("{00063073-0000-0000-C000-000000000046}") OutlookBarGroup;
typedef TComInterface<OutlookBarGroup, &IID_OutlookBarGroup> OutlookBarGroupPtr;

interface DECLSPEC_UUID("{00063074-0000-0000-C000-000000000046}") _OutlookBarShortcuts;
typedef TComInterface<_OutlookBarShortcuts, &IID__OutlookBarShortcuts> _OutlookBarShortcutsPtr;

interface DECLSPEC_UUID("{00063075-0000-0000-C000-000000000046}") OutlookBarShortcut;
typedef TComInterface<OutlookBarShortcut, &IID_OutlookBarShortcut> OutlookBarShortcutPtr;

interface DECLSPEC_UUID("{00063072-0000-0000-C000-000000000046}") _OutlookBarGroups;
typedef TComInterface<_OutlookBarGroups, &IID__OutlookBarGroups> _OutlookBarGroupsPtr;

interface DECLSPEC_UUID("{0006307B-0000-0000-C000-000000000046}") OutlookBarGroupsEvents;
typedef TComInterface<OutlookBarGroupsEvents, &DIID_OutlookBarGroupsEvents> OutlookBarGroupsEventsPtr;

interface DECLSPEC_UUID("{00063070-0000-0000-C000-000000000046}") _OutlookBarPane;
typedef TComInterface<_OutlookBarPane, &IID__OutlookBarPane> _OutlookBarPanePtr;

interface DECLSPEC_UUID("{00063071-0000-0000-C000-000000000046}") OutlookBarStorage;
typedef TComInterface<OutlookBarStorage, &IID_OutlookBarStorage> OutlookBarStoragePtr;

interface DECLSPEC_UUID("{0006307A-0000-0000-C000-000000000046}") OutlookBarPaneEvents;
typedef TComInterface<OutlookBarPaneEvents, &DIID_OutlookBarPaneEvents> OutlookBarPaneEventsPtr;

interface DECLSPEC_UUID("{0006307C-0000-0000-C000-000000000046}") OutlookBarShortcutsEvents;
typedef TComInterface<OutlookBarShortcutsEvents, &DIID_OutlookBarShortcutsEvents> OutlookBarShortcutsEventsPtr;

interface DECLSPEC_UUID("{0006307E-0000-0000-C000-000000000046}") PropertyPage;
typedef TComInterface<PropertyPage, &IID_PropertyPage> PropertyPagePtr;

interface DECLSPEC_UUID("{0006307F-0000-0000-C000-000000000046}") PropertyPageSite;
typedef TComInterface<PropertyPageSite, &IID_PropertyPageSite> PropertyPageSitePtr;

interface DECLSPEC_UUID("{0006303F-0000-0000-C000-000000000046}") Pages;
typedef TComInterface<Pages, &IID_Pages> PagesPtr;

interface DECLSPEC_UUID("{00063024-0000-0000-C000-000000000046}") _PostItem;
typedef TComInterface<_PostItem, &IID__PostItem> _PostItemPtr;

interface DECLSPEC_UUID("{00063023-0000-0000-C000-000000000046}") _RemoteItem;
typedef TComInterface<_RemoteItem, &IID__RemoteItem> _RemoteItemPtr;

interface DECLSPEC_UUID("{00063026-0000-0000-C000-000000000046}") _ReportItem;
typedef TComInterface<_ReportItem, &IID__ReportItem> _ReportItemPtr;

interface DECLSPEC_UUID("{00063035-0000-0000-C000-000000000046}") _TaskItem;
typedef TComInterface<_TaskItem, &IID__TaskItem> _TaskItemPtr;

interface DECLSPEC_UUID("{00063038-0000-0000-C000-000000000046}") _TaskRequestAcceptItem;
typedef TComInterface<_TaskRequestAcceptItem, &IID__TaskRequestAcceptItem> _TaskRequestAcceptItemPtr;

interface DECLSPEC_UUID("{00063039-0000-0000-C000-000000000046}") _TaskRequestDeclineItem;
typedef TComInterface<_TaskRequestDeclineItem, &IID__TaskRequestDeclineItem> _TaskRequestDeclineItemPtr;

interface DECLSPEC_UUID("{00063036-0000-0000-C000-000000000046}") _TaskRequestItem;
typedef TComInterface<_TaskRequestItem, &IID__TaskRequestItem> _TaskRequestItemPtr;

interface DECLSPEC_UUID("{00063037-0000-0000-C000-000000000046}") _TaskRequestUpdateItem;
typedef TComInterface<_TaskRequestUpdateItem, &IID__TaskRequestUpdateItem> _TaskRequestUpdateItemPtr;

interface DECLSPEC_UUID("{0006300E-0000-0000-C000-000000000046}") ApplicationEvents_10;
typedef TComInterface<ApplicationEvents_10, &DIID_ApplicationEvents_10> ApplicationEvents_10Ptr;

interface DECLSPEC_UUID("{0006300D-0000-0000-C000-000000000046}") ResultsEvents;
typedef TComInterface<ResultsEvents, &DIID_ResultsEvents> ResultsEventsPtr;

interface DECLSPEC_UUID("{000630A5-0000-0000-C000-000000000046}") _ViewsEvents;
typedef TComInterface<_ViewsEvents, &DIID__ViewsEvents> _ViewsEventsPtr;

interface DECLSPEC_UUID("{000630B2-0000-0000-C000-000000000046}") ReminderCollectionEvents;
typedef TComInterface<ReminderCollectionEvents, &DIID_ReminderCollectionEvents> ReminderCollectionEventsPtr;

interface DECLSPEC_UUID("{D87E7E16-6897-11CE-A6C0-00AA00608FAA}") _IRecipientControl;
typedef TComInterface<_IRecipientControl, &IID__IRecipientControl> _IRecipientControlPtr;

interface DECLSPEC_UUID("{0006F025-0000-0000-C000-000000000046}") _DRecipientControl;
typedef TComInterface<_DRecipientControl, &DIID__DRecipientControl> _DRecipientControlPtr;

interface DECLSPEC_UUID("{D87E7E17-6897-11CE-A6C0-00AA00608FAA}") _DRecipientControlEvents;
typedef TComInterface<_DRecipientControlEvents, &DIID__DRecipientControlEvents> _DRecipientControlEventsPtr;

interface DECLSPEC_UUID("{43507DD0-811D-11CE-B565-00AA00608FAA}") _IDocSiteControl;
typedef TComInterface<_IDocSiteControl, &IID__IDocSiteControl> _IDocSiteControlPtr;

interface DECLSPEC_UUID("{0006F026-0000-0000-C000-000000000046}") _DDocSiteControl;
typedef TComInterface<_DDocSiteControl, &DIID__DDocSiteControl> _DDocSiteControlPtr;

interface DECLSPEC_UUID("{50BB9B50-811D-11CE-B565-00AA00608FAA}") _DDocSiteControlEvents;
typedef TComInterface<_DDocSiteControlEvents, &DIID__DDocSiteControlEvents> _DDocSiteControlEventsPtr;

interface DECLSPEC_UUID("{0006F097-0000-0000-C000-000000000046}") _IDpxCtrl;
typedef TComInterface<_IDpxCtrl, &IID__IDpxCtrl> _IDpxCtrlPtr;

interface DECLSPEC_UUID("{494F0970-DD96-11D2-AF70-006008AFF117}") _IPageWrapCtrl;
typedef TComInterface<_IPageWrapCtrl, &IID__IPageWrapCtrl> _IPageWrapCtrlPtr;

interface DECLSPEC_UUID("{0006F096-0000-0000-C000-000000000046}") _DPageWrapCtrl;
typedef TComInterface<_DPageWrapCtrl, &DIID__DPageWrapCtrl> _DPageWrapCtrlPtr;

interface DECLSPEC_UUID("{494F0971-DD96-11D2-AF70-006008AFF117}") _DPageWrapCtrlEvents;
typedef TComInterface<_DPageWrapCtrlEvents, &DIID__DPageWrapCtrlEvents> _DPageWrapCtrlEventsPtr;

interface DECLSPEC_UUID("{E182A127-EADD-46E1-B878-482C48CD8754}") _IInspectorCtrl;
typedef TComInterface<_IInspectorCtrl, &IID__IInspectorCtrl> _IInspectorCtrlPtr;

interface DECLSPEC_UUID("{0006F09D-0000-0000-C000-000000000046}") _DInspectorCtrl;
typedef TComInterface<_DInspectorCtrl, &DIID__DInspectorCtrl> _DInspectorCtrlPtr;

interface DECLSPEC_UUID("{2D9C6D57-BD3C-4275-BED2-73F0EDC18CCE}") _DInspectorEvents;
typedef TComInterface<_DInspectorEvents, &DIID__DInspectorEvents> _DInspectorEventsPtr;

interface DECLSPEC_UUID("{11858B51-DE06-494E-915A-6CCEF17F7CB6}") DDataSourceObject;
typedef TComInterface<DDataSourceObject, &DIID_DDataSourceObject> DDataSourceObjectPtr;


// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
//                                                                        
// The LIBID_OF_ macro(s) map a LIBID_OF_CoClassName to the GUID of this  
// TypeLibrary. It simplifies the updating of macros when CoClass name    
// change.                                                                
// *********************************************************************//
typedef _SyncObject SyncObject;
typedef _SyncObjectPtr SyncObjectPtr;
typedef _Explorer Explorer;
typedef _ExplorerPtr ExplorerPtr;
typedef _Inspector Inspector;
typedef _InspectorPtr InspectorPtr;
typedef _MailItem MailItem;
typedef _MailItemPtr MailItemPtr;
typedef _AppointmentItem AppointmentItem;
typedef _AppointmentItemPtr AppointmentItemPtr;
typedef _MeetingItem MeetingItem;
typedef _MeetingItemPtr MeetingItemPtr;
typedef _TaskItem TaskItem;
typedef _TaskItemPtr TaskItemPtr;
typedef _Application OutlookApplication;
typedef _ApplicationPtr OutlookApplicationPtr;
typedef _ContactItem ContactItem;
typedef _ContactItemPtr ContactItemPtr;
typedef _DistListItem DistListItem;
typedef _DistListItemPtr DistListItemPtr;
typedef _DocumentItem DocumentItem;
typedef _DocumentItemPtr DocumentItemPtr;
typedef _Explorers Explorers;
typedef _ExplorersPtr ExplorersPtr;
typedef _Inspectors Inspectors;
typedef _InspectorsPtr InspectorsPtr;
typedef _Folders Folders;
typedef _FoldersPtr FoldersPtr;
typedef _Items Items;
typedef _ItemsPtr ItemsPtr;
typedef _JournalItem JournalItem;
typedef _JournalItemPtr JournalItemPtr;
typedef _NameSpace NameSpace;
typedef _NameSpacePtr NameSpacePtr;
typedef _NoteItem NoteItem;
typedef _NoteItemPtr NoteItemPtr;
typedef _OutlookBarGroups OutlookBarGroups;
typedef _OutlookBarGroupsPtr OutlookBarGroupsPtr;
typedef _OutlookBarPane OutlookBarPane;
typedef _OutlookBarPanePtr OutlookBarPanePtr;
typedef _OutlookBarShortcuts OutlookBarShortcuts;
typedef _OutlookBarShortcutsPtr OutlookBarShortcutsPtr;
typedef _PostItem PostItem;
typedef _PostItemPtr PostItemPtr;
typedef _RemoteItem RemoteItem;
typedef _RemoteItemPtr RemoteItemPtr;
typedef _ReportItem ReportItem;
typedef _ReportItemPtr ReportItemPtr;
typedef _TaskRequestAcceptItem TaskRequestAcceptItem;
typedef _TaskRequestAcceptItemPtr TaskRequestAcceptItemPtr;
typedef _TaskRequestDeclineItem TaskRequestDeclineItem;
typedef _TaskRequestDeclineItemPtr TaskRequestDeclineItemPtr;
typedef _TaskRequestItem TaskRequestItem;
typedef _TaskRequestItemPtr TaskRequestItemPtr;
typedef _TaskRequestUpdateItem TaskRequestUpdateItem;
typedef _TaskRequestUpdateItemPtr TaskRequestUpdateItemPtr;
typedef _DRecipientControl _RecipientControl;
typedef _DRecipientControlPtr _RecipientControlPtr;
typedef _DDocSiteControl _DocSiteControl;
typedef _DDocSiteControlPtr _DocSiteControlPtr;
typedef _IDpxCtrl _DpxCtrl;
typedef _IDpxCtrlPtr _DpxCtrlPtr;
typedef _DPageWrapCtrl _PageWrapCtrl;
typedef _DPageWrapCtrlPtr _PageWrapCtrlPtr;
typedef _DInspectorCtrl _InspectorCtrl;
typedef _DInspectorCtrlPtr _InspectorCtrlPtr;
typedef DDataSourceObject DataSourceObject;
typedef DDataSourceObjectPtr DataSourceObjectPtr;
typedef _Results Results;
typedef _ResultsPtr ResultsPtr;
typedef _Views Views;
typedef _ViewsPtr ViewsPtr;
typedef _Reminder Reminder;
typedef _ReminderPtr ReminderPtr;
typedef _Reminders Reminders;
typedef _RemindersPtr RemindersPtr;

#define LIBID_OF_SyncObject (&LIBID_Outlook)
#define LIBID_OF_Explorer (&LIBID_Outlook)
#define LIBID_OF_Inspector (&LIBID_Outlook)
#define LIBID_OF_MailItem (&LIBID_Outlook)
#define LIBID_OF_AppointmentItem (&LIBID_Outlook)
#define LIBID_OF_MeetingItem (&LIBID_Outlook)
#define LIBID_OF_TaskItem (&LIBID_Outlook)
#define LIBID_OF_OutlookApplication (&LIBID_Outlook)
#define LIBID_OF_ContactItem (&LIBID_Outlook)
#define LIBID_OF_DistListItem (&LIBID_Outlook)
#define LIBID_OF_DocumentItem (&LIBID_Outlook)
#define LIBID_OF_Explorers (&LIBID_Outlook)
#define LIBID_OF_Inspectors (&LIBID_Outlook)
#define LIBID_OF_Folders (&LIBID_Outlook)
#define LIBID_OF_Items (&LIBID_Outlook)
#define LIBID_OF_JournalItem (&LIBID_Outlook)
#define LIBID_OF_NameSpace (&LIBID_Outlook)
#define LIBID_OF_NoteItem (&LIBID_Outlook)
#define LIBID_OF_OutlookBarGroups (&LIBID_Outlook)
#define LIBID_OF_OutlookBarPane (&LIBID_Outlook)
#define LIBID_OF_OutlookBarShortcuts (&LIBID_Outlook)
#define LIBID_OF_PostItem (&LIBID_Outlook)
#define LIBID_OF_RemoteItem (&LIBID_Outlook)
#define LIBID_OF_ReportItem (&LIBID_Outlook)
#define LIBID_OF_TaskRequestAcceptItem (&LIBID_Outlook)
#define LIBID_OF_TaskRequestDeclineItem (&LIBID_Outlook)
#define LIBID_OF_TaskRequestItem (&LIBID_Outlook)
#define LIBID_OF_TaskRequestUpdateItem (&LIBID_Outlook)
#define LIBID_OF__RecipientControl (&LIBID_Outlook)
#define LIBID_OF__DocSiteControl (&LIBID_Outlook)
#define LIBID_OF__DpxCtrl (&LIBID_Outlook)
#define LIBID_OF__PageWrapCtrl (&LIBID_Outlook)
#define LIBID_OF__InspectorCtrl (&LIBID_Outlook)
#define LIBID_OF_DataSourceObject (&LIBID_Outlook)
#define LIBID_OF_Results (&LIBID_Outlook)
#define LIBID_OF_Views (&LIBID_Outlook)
#define LIBID_OF_Reminder (&LIBID_Outlook)
#define LIBID_OF_Reminders (&LIBID_Outlook)

// *********************************************************************//
// Declaration of Enumerations defined in Type Library                    
// *********************************************************************//
typedef enum OlActionCopyLike
{
  olReply = 0, 
  olReplyAll = 1, 
  olForward = 2, 
  olReplyFolder = 3, 
  olRespond = 4
} OlActionCopyLike;

typedef enum OlActionReplyStyle
{
  olOmitOriginalText = 0, 
  olEmbedOriginalItem = 1, 
  olIncludeOriginalText = 2, 
  olIndentOriginalText = 3, 
  olLinkOriginalItem = 4, 
  olUserPreference = 5, 
  olReplyTickOriginalText = 1000
} OlActionReplyStyle;

typedef enum OlActionResponseStyle
{
  olOpen = 0, 
  olSend = 1, 
  olPrompt = 2
} OlActionResponseStyle;

typedef enum OlActionShowOn
{
  olDontShow = 0, 
  olMenu = 1, 
  olMenuAndToolbar = 2
} OlActionShowOn;

typedef enum OlAttachmentType
{
  olByValue = 1, 
  olByReference = 4, 
  olEmbeddeditem = 5, 
  olOLE = 6
} OlAttachmentType;

typedef enum OlBusyStatus
{
  olFree = 0, 
  olTentative = 1, 
  olBusy = 2, 
  olOutOfOffice = 3
} OlBusyStatus;

typedef enum OlDaysOfWeek
{
  olSunday = 1, 
  olMonday = 2, 
  olTuesday = 4, 
  olWednesday = 8, 
  olThursday = 16, 
  olFriday = 32, 
  olSaturday = 64
} OlDaysOfWeek;

typedef enum OlDefaultFolders
{
  olFolderDeletedItems = 3, 
  olFolderOutbox = 4, 
  olFolderSentMail = 5, 
  olFolderInbox = 6, 
  olFolderCalendar = 9, 
  olFolderContacts = 10, 
  olFolderJournal = 11, 
  olFolderNotes = 12, 
  olFolderTasks = 13, 
  olFolderDrafts = 16, 
  olPublicFoldersAllPublicFolders = 18
} OlDefaultFolders;

typedef enum OlDisplayType
{
  olUser = 0, 
  olDistList = 1, 
  olForum = 2, 
  olAgent = 3, 
  olOrganization = 4, 
  olPrivateDistList = 5, 
  olRemoteUser = 6
} OlDisplayType;

typedef enum OlEditorType
{
  olEditorText = 1, 
  olEditorHTML = 2, 
  olEditorRTF = 3, 
  olEditorWord = 4
} OlEditorType;

typedef enum OlFlagStatus
{
  olNoFlag = 0, 
  olFlagComplete = 1, 
  olFlagMarked = 2
} OlFlagStatus;

typedef enum OlFolderDisplayMode
{
  olFolderDisplayNormal = 0, 
  olFolderDisplayFolderOnly = 1, 
  olFolderDisplayNoNavigation = 2
} OlFolderDisplayMode;

typedef enum OlFormRegistry
{
  olDefaultRegistry = 0, 
  olPersonalRegistry = 2, 
  olFolderRegistry = 3, 
  olOrganizationRegistry = 4
} OlFormRegistry;

typedef enum OlGender
{
  olUnspecified = 0, 
  olFemale = 1, 
  olMale = 2
} OlGender;

typedef enum OlImportance
{
  olImportanceLow = 0, 
  olImportanceNormal = 1, 
  olImportanceHigh = 2
} OlImportance;

typedef enum OlInspectorClose
{
  olSave = 0, 
  olDiscard = 1, 
  olPromptForSave = 2
} OlInspectorClose;

typedef enum OlItemType
{
  olMailItem = 0, 
  olAppointmentItem = 1, 
  olContactItem = 2, 
  olTaskItem = 3, 
  olJournalItem = 4, 
  olNoteItem = 5, 
  olPostItem = 6, 
  olDistributionListItem = 7
} OlItemType;

typedef enum OlJournalRecipientType
{
  olAssociatedContact = 1
} OlJournalRecipientType;

typedef enum OlMailingAddress
{
  olNone = 0, 
  olHome = 1, 
  olBusiness = 2, 
  olOther = 3
} OlMailingAddress;

typedef enum OlMailRecipientType
{
  olOriginator = 0, 
  olTo = 1, 
  olCC = 2, 
  olBCC = 3
} OlMailRecipientType;

typedef enum OlMeetingRecipientType
{
  olOrganizer = 0, 
  olRequired = 1, 
  olOptional = 2, 
  olResource = 3
} OlMeetingRecipientType;

typedef enum OlMeetingResponse
{
  olMeetingTentative = 2, 
  olMeetingAccepted = 3, 
  olMeetingDeclined = 4
} OlMeetingResponse;

typedef enum OlMeetingStatus
{
  olNonMeeting = 0, 
  olMeeting = 1, 
  olMeetingReceived = 3, 
  olMeetingCanceled = 5
} OlMeetingStatus;

typedef enum OlNetMeetingType
{
  olNetMeeting = 0, 
  olNetShow = 1, 
  olExchangeConferencing = 2
} OlNetMeetingType;

typedef enum OlNoteColor
{
  olBlue = 0, 
  olGreen = 1, 
  olPink = 2, 
  olYellow = 3, 
  olWhite = 4
} OlNoteColor;

typedef enum OlObjectClass
{
  olApplication = 0, 
  olNamespace = 1, 
  olFolder = 2, 
  olRecipient = 4, 
  olAttachment = 5, 
  olAddressList = 7, 
  olAddressEntry = 8, 
  olFolders = 15, 
  olItems = 16, 
  olRecipients = 17, 
  olAttachments = 18, 
  olAddressLists = 20, 
  olAddressEntries = 21, 
  olAppointment = 26, 
  olMeetingRequest = 53, 
  olMeetingCancellation = 54, 
  olMeetingResponseNegative = 55, 
  olMeetingResponsePositive = 56, 
  olMeetingResponseTentative = 57, 
  olRecurrencePattern = 28, 
  olExceptions = 29, 
  olException = 30, 
  olAction = 32, 
  olActions = 33, 
  olExplorer = 34, 
  olInspector = 35, 
  olPages = 36, 
  olFormDescription = 37, 
  olUserProperties = 38, 
  olUserProperty = 39, 
  olContact = 40, 
  olDocument = 41, 
  olJournal = 42, 
  olMail = 43, 
  olNote = 44, 
  olPost = 45, 
  olReport = 46, 
  olRemote = 47, 
  olTask = 48, 
  olTaskRequest = 49, 
  olTaskRequestUpdate = 50, 
  olTaskRequestAccept = 51, 
  olTaskRequestDecline = 52, 
  olExplorers = 60, 
  olInspectors = 61, 
  olPanes = 62, 
  olOutlookBarPane = 63, 
  olOutlookBarStorage = 64, 
  olOutlookBarGroups = 65, 
  olOutlookBarGroup = 66, 
  olOutlookBarShortcuts = 67, 
  olOutlookBarShortcut = 68, 
  olDistributionList = 69, 
  olPropertyPageSite = 70, 
  olPropertyPages = 71, 
  olSyncObject = 72, 
  olSyncObjects = 73, 
  olSelection = 74, 
  olLink = 75, 
  olLinks = 76, 
  olSearch = 77, 
  olResults = 78, 
  olViews = 79, 
  olView = 80, 
  olItemProperties = 98, 
  olItemProperty = 99, 
  olReminders = 100, 
  olReminder = 101
} OlObjectClass;

typedef enum OlOutlookBarViewType
{
  olLargeIcon = 0, 
  olSmallIcon = 1
} OlOutlookBarViewType;

typedef enum OlPane
{
  olOutlookBar = 1, 
  olFolderList = 2, 
  olPreview = 3
} OlPane;

typedef enum OlRecurrenceState
{
  olApptNotRecurring = 0, 
  olApptMaster = 1, 
  olApptOccurrence = 2, 
  olApptException = 3
} OlRecurrenceState;

typedef enum OlRecurrenceType
{
  olRecursDaily = 0, 
  olRecursWeekly = 1, 
  olRecursMonthly = 2, 
  olRecursMonthNth = 3, 
  olRecursYearly = 5, 
  olRecursYearNth = 6
} OlRecurrenceType;

typedef enum OlRemoteStatus
{
  olRemoteStatusNone = 0, 
  olUnMarked = 1, 
  olMarkedForDownload = 2, 
  olMarkedForCopy = 3, 
  olMarkedForDelete = 4
} OlRemoteStatus;

typedef enum OlResponseStatus
{
  olResponseNone = 0, 
  olResponseOrganized = 1, 
  olResponseTentative = 2, 
  olResponseAccepted = 3, 
  olResponseDeclined = 4, 
  olResponseNotResponded = 5
} OlResponseStatus;

typedef enum OlSaveAsType
{
  olTXT = 0, 
  olRTF = 1, 
  olTemplate = 2, 
  olMSG = 3, 
  olDoc = 4, 
  olHTML = 5, 
  olVCard = 6, 
  olVCal = 7, 
  olICal = 8
} OlSaveAsType;

typedef enum OlSensitivity
{
  olNormal = 0, 
  olPersonal = 1, 
  olPrivate = 2, 
  olConfidential = 3
} OlSensitivity;

typedef enum OlSortOrder
{
  olSortNone = 0, 
  olAscending = 1, 
  olDescending = 2
} OlSortOrder;

typedef enum OlTaskDelegationState
{
  olTaskNotDelegated = 0, 
  olTaskDelegationUnknown = 1, 
  olTaskDelegationAccepted = 2, 
  olTaskDelegationDeclined = 3
} OlTaskDelegationState;

typedef enum OlTaskOwnership
{
  olNewTask = 0, 
  olDelegatedTask = 1, 
  olOwnTask = 2
} OlTaskOwnership;

typedef enum OlTaskRecipientType
{
  olUpdate = 2, 
  olFinalStatus = 3
} OlTaskRecipientType;

typedef enum OlTaskResponse
{
  olTaskSimple = 0, 
  olTaskAssign = 1, 
  olTaskAccept = 2, 
  olTaskDecline = 3
} OlTaskResponse;

typedef enum OlTaskStatus
{
  olTaskNotStarted = 0, 
  olTaskInProgress = 1, 
  olTaskComplete = 2, 
  olTaskWaiting = 3, 
  olTaskDeferred = 4
} OlTaskStatus;

typedef enum OlTrackingStatus
{
  olTrackingNone = 0, 
  olTrackingDelivered = 1, 
  olTrackingNotDelivered = 2, 
  olTrackingNotRead = 3, 
  olTrackingRecallFailure = 4, 
  olTrackingRecallSuccess = 5, 
  olTrackingRead = 6, 
  olTrackingReplied = 7
} OlTrackingStatus;

typedef enum OlUserPropertyType
{
  olOutlookInternal = 0, 
  olText = 1, 
  olNumber = 3, 
  olDateTime = 5, 
  olYesNo = 6, 
  olDuration = 7, 
  olKeywords = 11, 
  olPercent = 12, 
  olCurrency = 14, 
  olFormula = 18, 
  olCombination = 19
} OlUserPropertyType;

typedef enum OlWindowState
{
  olMaximized = 0, 
  olMinimized = 1, 
  olNormalWindow = 2
} OlWindowState;

typedef enum OlSyncState
{
  olSyncStopped = 0, 
  olSyncStarted = 1
} OlSyncState;

typedef enum OlBodyFormat
{
  olFormatUnspecified = 0, 
  olFormatPlain = 1, 
  olFormatHTML = 2, 
  olFormatRichText = 3
} OlBodyFormat;

typedef enum OlDownloadState
{
  olHeaderOnly = 0, 
  olFullItem = 1
} OlDownloadState;

typedef enum OlOfficeDocItemsType
{
  olExcelWorkSheetItem = 8, 
  olWordDocumentItem = 9, 
  olPowerPointShowItem = 10
} OlOfficeDocItemsType;

typedef enum OlViewSaveOption
{
  olViewSaveOptionThisFolderEveryone = 0, 
  olViewSaveOptionThisFolderOnlyMe = 1, 
  olViewSaveOptionAllFoldersOfType = 2
} OlViewSaveOption;

typedef enum OlViewType
{
  olTableView = 0, 
  olCardView = 1, 
  olCalendarView = 2, 
  olIconView = 3, 
  olTimelineView = 4
} OlViewType;

// *********************************************************************//
// Interface: Action
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063043-0000-0000-C000-000000000046}
// *********************************************************************//
interface Action  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_CopyLike(Outlook_xp::OlActionCopyLike* CopyLike/*[out,retval]*/) = 0; // [100]
  virtual HRESULT STDMETHODCALLTYPE set_CopyLike(Outlook_xp::OlActionCopyLike CopyLike/*[in]*/) = 0; // [100]
  virtual HRESULT STDMETHODCALLTYPE get_Enabled(VARIANT_BOOL* Enabled/*[out,retval]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE set_Enabled(VARIANT_BOOL Enabled/*[in]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Prefix(BSTR* Prefix/*[out,retval]*/) = 0; // [61]
  virtual HRESULT STDMETHODCALLTYPE set_Prefix(BSTR Prefix/*[in]*/) = 0; // [61]
  virtual HRESULT STDMETHODCALLTYPE get_ReplyStyle(Outlook_xp::OlActionReplyStyle* ReplyStyle/*[out,retval]*/) = 0; // [101]
  virtual HRESULT STDMETHODCALLTYPE set_ReplyStyle(Outlook_xp::OlActionReplyStyle ReplyStyle/*[in]*/) = 0; // [101]
  virtual HRESULT STDMETHODCALLTYPE get_ResponseStyle(Outlook_xp::OlActionResponseStyle* ResponseStyle/*[out,retval]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE set_ResponseStyle(Outlook_xp::OlActionResponseStyle ResponseStyle/*[in]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE get_ShowOn(Outlook_xp::OlActionShowOn* ShowOn/*[out,retval]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE set_ShowOn(Outlook_xp::OlActionShowOn ShowOn/*[in]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [108]
  virtual HRESULT STDMETHODCALLTYPE Execute(LPDISPATCH* Item/*[out,retval]*/) = 0; // [106]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::OlActionCopyLike __fastcall get_CopyLike(void)
  {
    Outlook_xp::OlActionCopyLike CopyLike;
    OLECHECK(this->get_CopyLike((Outlook_xp::OlActionCopyLike*)&CopyLike));
    return CopyLike;
  }

  VARIANT_BOOL __fastcall get_Enabled(void)
  {
    VARIANT_BOOL Enabled;
    OLECHECK(this->get_Enabled((VARIANT_BOOL*)&Enabled));
    return Enabled;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  BSTR __fastcall get_Prefix(void)
  {
    BSTR Prefix = 0;
    OLECHECK(this->get_Prefix((BSTR*)&Prefix));
    return Prefix;
  }

  Outlook_xp::OlActionReplyStyle __fastcall get_ReplyStyle(void)
  {
    Outlook_xp::OlActionReplyStyle ReplyStyle;
    OLECHECK(this->get_ReplyStyle((Outlook_xp::OlActionReplyStyle*)&ReplyStyle));
    return ReplyStyle;
  }

  Outlook_xp::OlActionResponseStyle __fastcall get_ResponseStyle(void)
  {
    Outlook_xp::OlActionResponseStyle ResponseStyle;
    OLECHECK(this->get_ResponseStyle((Outlook_xp::OlActionResponseStyle*)&ResponseStyle));
    return ResponseStyle;
  }

  Outlook_xp::OlActionShowOn __fastcall get_ShowOn(void)
  {
    Outlook_xp::OlActionShowOn ShowOn;
    OLECHECK(this->get_ShowOn((Outlook_xp::OlActionShowOn*)&ShowOn));
    return ShowOn;
  }

  LPDISPATCH __fastcall Execute(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Execute((LPDISPATCH*)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OlActionCopyLike CopyLike = {read = get_CopyLike, write = set_CopyLike};
  __property   VARIANT_BOOL    Enabled = {read = get_Enabled, write = set_Enabled};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Prefix = {read = get_Prefix, write = set_Prefix};
  __property   Outlook_xp::OlActionReplyStyle ReplyStyle = {read = get_ReplyStyle, write = set_ReplyStyle};
  __property   Outlook_xp::OlActionResponseStyle ResponseStyle = {read = get_ResponseStyle, write = set_ResponseStyle};
  __property   Outlook_xp::OlActionShowOn ShowOn = {read = get_ShowOn, write = set_ShowOn};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Application
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063001-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Application  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Assistant(Office_xp::Assistant** Assistant/*[out,retval]*/) = 0; // [276]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Version(BSTR* Version/*[out,retval]*/) = 0; // [278]
  virtual HRESULT STDMETHODCALLTYPE ActiveExplorer(Outlook_xp::_Explorer** ActiveExplorer/*[out,retval]*/) = 0; // [273]
  virtual HRESULT STDMETHODCALLTYPE ActiveInspector(Outlook_xp::_Inspector** ActiveInspector/*[out,retval]*/) = 0; // [274]
  virtual HRESULT STDMETHODCALLTYPE CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/, 
                                               LPDISPATCH* Item/*[out,retval]*/) = 0; // [266]
  virtual HRESULT STDMETHODCALLTYPE CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                                           VARIANT InFolder/*[in,opt]*/, 
                                                           LPDISPATCH* Item/*[out,retval]*/) = 0; // [267]
  virtual HRESULT STDMETHODCALLTYPE CreateObject(BSTR ObjectName/*[in]*/, 
                                                 LPDISPATCH* Object/*[out,retval]*/) = 0; // [277]
  virtual HRESULT STDMETHODCALLTYPE GetNamespace(BSTR Type/*[in]*/, 
                                                 Outlook_xp::_NameSpace** NameSpace/*[out,retval]*/) = 0; // [272]
  virtual HRESULT STDMETHODCALLTYPE Quit(void) = 0; // [275]
  virtual HRESULT STDMETHODCALLTYPE get_COMAddIns(Office_xp::COMAddIns** COMAddIns/*[out,retval]*/) = 0; // [280]
  virtual HRESULT STDMETHODCALLTYPE get_Explorers(Outlook_xp::_Explorers** Explorers/*[out,retval]*/) = 0; // [281]
  virtual HRESULT STDMETHODCALLTYPE get_Inspectors(Outlook_xp::_Inspectors** Inspectors/*[out,retval]*/) = 0; // [282]
  virtual HRESULT STDMETHODCALLTYPE get_LanguageSettings(Office_xp::LanguageSettings** LanguageSettings/*[out,retval]*/) = 0; // [283]
  virtual HRESULT STDMETHODCALLTYPE get_ProductCode(BSTR* ProductCode/*[out,retval]*/) = 0; // [284]
  virtual HRESULT STDMETHODCALLTYPE get_AnswerWizard(Office_xp::AnswerWizard** AnswerWizard/*[out,retval]*/) = 0; // [285]
  virtual HRESULT STDMETHODCALLTYPE get_FeatureInstall(Office_xp::MsoFeatureInstall* FeatureInstall/*[out,retval]*/) = 0; // [286]
  virtual HRESULT STDMETHODCALLTYPE set_FeatureInstall(Office_xp::MsoFeatureInstall FeatureInstall/*[in]*/) = 0; // [286]
  virtual HRESULT STDMETHODCALLTYPE ActiveWindow(LPDISPATCH* ActiveWindow/*[out,retval]*/) = 0; // [287]
  virtual HRESULT STDMETHODCALLTYPE CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/, 
                                             LPDISPATCH* DocItem/*[out,retval]*/) = 0; // [64098]
  virtual HRESULT STDMETHODCALLTYPE AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                                   VARIANT SearchSubFolders/*[in,opt]*/, 
                                                   VARIANT Tag/*[in,opt]*/, 
                                                   Outlook_xp::Search** AdvancedSearch/*[out,retval]*/) = 0; // [64101]
  virtual HRESULT STDMETHODCALLTYPE IsSearchSynchronous(BSTR LookInFolders/*[in]*/, 
                                                        VARIANT_BOOL* IsSearchSynchronous/*[out,retval]*/) = 0; // [64108]
  virtual HRESULT STDMETHODCALLTYPE GetNewNickNames(VARIANT* pvar/*[in]*/) = 0; // [64072]
  virtual HRESULT STDMETHODCALLTYPE get_Reminders(Outlook_xp::_Reminders** Reminders/*[out,retval]*/) = 0; // [64153]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Office_xp::AssistantPtr __fastcall get_Assistant(void)
  {
    Office_xp::AssistantPtr Assistant;
    OLECHECK(this->get_Assistant(&Assistant));
    return Assistant;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  BSTR __fastcall get_Version(void)
  {
    BSTR Version = 0;
    OLECHECK(this->get_Version((BSTR*)&Version));
    return Version;
  }

  Outlook_xp::_Explorer* __fastcall ActiveExplorer(void)
  {
    Outlook_xp::_Explorer* ActiveExplorer = 0;
    OLECHECK(this->ActiveExplorer((Outlook_xp::_Explorer**)&ActiveExplorer));
    return ActiveExplorer;
  }

  Outlook_xp::_Inspector* __fastcall ActiveInspector(void)
  {
    Outlook_xp::_Inspector* ActiveInspector = 0;
    OLECHECK(this->ActiveInspector((Outlook_xp::_Inspector**)&ActiveInspector));
    return ActiveInspector;
  }

  LPDISPATCH __fastcall CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->CreateItem(ItemType, (LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                               VARIANT InFolder/*[in,opt]*/= TNoParam())
  {
    LPDISPATCH Item;
    OLECHECK(this->CreateItemFromTemplate(TemplatePath, InFolder, (LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall CreateObject(BSTR ObjectName/*[in]*/)
  {
    LPDISPATCH Object;
    OLECHECK(this->CreateObject(ObjectName, (LPDISPATCH*)&Object));
    return Object;
  }

  Outlook_xp::_NameSpace* __fastcall GetNamespace(BSTR Type/*[in]*/)
  {
    Outlook_xp::_NameSpace* NameSpace = 0;
    OLECHECK(this->GetNamespace(Type, (Outlook_xp::_NameSpace**)&NameSpace));
    return NameSpace;
  }

  Office_xp::COMAddInsPtr __fastcall get_COMAddIns(void)
  {
    Office_xp::COMAddInsPtr COMAddIns;
    OLECHECK(this->get_COMAddIns(&COMAddIns));
    return COMAddIns;
  }

  Outlook_xp::_ExplorersPtr __fastcall get_Explorers(void)
  {
    Outlook_xp::_ExplorersPtr Explorers;
    OLECHECK(this->get_Explorers(&Explorers));
    return Explorers;
  }

  Outlook_xp::_InspectorsPtr __fastcall get_Inspectors(void)
  {
    Outlook_xp::_InspectorsPtr Inspectors;
    OLECHECK(this->get_Inspectors(&Inspectors));
    return Inspectors;
  }

  Office_xp::LanguageSettingsPtr __fastcall get_LanguageSettings(void)
  {
    Office_xp::LanguageSettingsPtr LanguageSettings;
    OLECHECK(this->get_LanguageSettings(&LanguageSettings));
    return LanguageSettings;
  }

  BSTR __fastcall get_ProductCode(void)
  {
    BSTR ProductCode = 0;
    OLECHECK(this->get_ProductCode((BSTR*)&ProductCode));
    return ProductCode;
  }

  Office_xp::AnswerWizardPtr __fastcall get_AnswerWizard(void)
  {
    Office_xp::AnswerWizardPtr AnswerWizard;
    OLECHECK(this->get_AnswerWizard(&AnswerWizard));
    return AnswerWizard;
  }

  Office_xp::MsoFeatureInstall __fastcall get_FeatureInstall(void)
  {
    Office_xp::MsoFeatureInstall FeatureInstall;
    OLECHECK(this->get_FeatureInstall((Office_xp::MsoFeatureInstall*)&FeatureInstall));
    return FeatureInstall;
  }

  LPDISPATCH __fastcall ActiveWindow(void)
  {
    LPDISPATCH ActiveWindow;
    OLECHECK(this->ActiveWindow((LPDISPATCH*)&ActiveWindow));
    return ActiveWindow;
  }

  LPDISPATCH __fastcall CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/)
  {
    LPDISPATCH DocItem;
    OLECHECK(this->CopyFile(FilePath, DestFolderPath, (LPDISPATCH*)&DocItem));
    return DocItem;
  }

  Outlook_xp::Search* __fastcall AdvancedSearch(BSTR Scope/*[in]*/, 
                                                VARIANT Filter/*[in,opt]*/= TNoParam(), 
                                                VARIANT SearchSubFolders/*[in,opt]*/= TNoParam(), 
                                                VARIANT Tag/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::Search* AdvancedSearch = 0;
    OLECHECK(this->AdvancedSearch(Scope, Filter, SearchSubFolders, Tag, (Outlook_xp::Search**)&AdvancedSearch));
    return AdvancedSearch;
  }

  VARIANT_BOOL __fastcall IsSearchSynchronous(BSTR LookInFolders/*[in]*/)
  {
    VARIANT_BOOL IsSearchSynchronous;
    OLECHECK(this->IsSearchSynchronous(LookInFolders, (VARIANT_BOOL*)&IsSearchSynchronous));
    return IsSearchSynchronous;
  }

  Outlook_xp::_RemindersPtr __fastcall get_Reminders(void)
  {
    Outlook_xp::_RemindersPtr Reminders;
    OLECHECK(this->get_Reminders(&Reminders));
    return Reminders;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::AssistantPtr Assistant = {read = get_Assistant};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Version = {read = get_Version};
  __property   Office_xp::COMAddInsPtr COMAddIns = {read = get_COMAddIns};
  __property   Outlook_xp::_ExplorersPtr Explorers = {read = get_Explorers};
  __property   Outlook_xp::_InspectorsPtr Inspectors = {read = get_Inspectors};
  __property   Office_xp::LanguageSettingsPtr LanguageSettings = {read = get_LanguageSettings};
  __property   BSTR            ProductCode = {read = get_ProductCode};
  __property   Office_xp::AnswerWizardPtr AnswerWizard = {read = get_AnswerWizard};
  __property   Office_xp::MsoFeatureInstall FeatureInstall = {read = get_FeatureInstall, write = set_FeatureInstall};
  __property   Outlook_xp::_RemindersPtr Reminders = {read = get_Reminders};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _NameSpace
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063002-0000-0000-C000-000000000046}
// *********************************************************************//
interface _NameSpace  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentUser(Outlook_xp::Recipient** CurrentUser/*[out,retval]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR* Type/*[out,retval]*/) = 0; // [8452]
  virtual HRESULT STDMETHODCALLTYPE get_AddressLists(Outlook_xp::AddressLists** AddressLists/*[out,retval]*/) = 0; // [8461]
  virtual HRESULT STDMETHODCALLTYPE CreateRecipient(BSTR RecipientName/*[in]*/, 
                                                    Outlook_xp::Recipient** Recipient/*[out,retval]*/) = 0; // [8458]
  virtual HRESULT STDMETHODCALLTYPE GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                                     Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [8459]
  virtual HRESULT STDMETHODCALLTYPE GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                                    VARIANT EntryIDStore/*[in,opt]*/, 
                                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [8456]
  virtual HRESULT STDMETHODCALLTYPE GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                                  VARIANT EntryIDStore/*[in,opt]*/, 
                                                  LPDISPATCH* Item/*[out,retval]*/) = 0; // [8457]
  virtual HRESULT STDMETHODCALLTYPE GetRecipientFromID(BSTR EntryID/*[in]*/, 
                                                       Outlook_xp::Recipient** Recipient/*[out,retval]*/) = 0; // [8455]
  virtual HRESULT STDMETHODCALLTYPE GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                           Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                                           Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [8460]
  virtual HRESULT STDMETHODCALLTYPE Logoff(void) = 0; // [8454]
  virtual HRESULT STDMETHODCALLTYPE Logon(VARIANT Profile/*[in,opt]*/= TNoParam(), 
                                          VARIANT Password/*[in,opt]*/= TNoParam(), 
                                          VARIANT ShowDialog/*[in,opt]*/= TNoParam(), 
                                          VARIANT NewSession/*[in,opt]*/= TNoParam()) = 0; // [8453]
  virtual HRESULT STDMETHODCALLTYPE PickFolder(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [8462]
  virtual HRESULT STDMETHODCALLTYPE RefreshRemoteHeaders(void) = 0; // [8471]
  virtual HRESULT STDMETHODCALLTYPE get_SyncObjects(Outlook_xp::SyncObjects** SyncObjects/*[out,retval]*/) = 0; // [8472]
  virtual HRESULT STDMETHODCALLTYPE AddStore(VARIANT Store/*[in]*/) = 0; // [8473]
  virtual HRESULT STDMETHODCALLTYPE RemoveStore(Outlook_xp::MAPIFolder* Folder/*[in]*/) = 0; // [8474]
  virtual HRESULT STDMETHODCALLTYPE get_Offline(VARIANT_BOOL* Offline/*[out,retval]*/) = 0; // [64076]
  virtual HRESULT STDMETHODCALLTYPE Dial(VARIANT ContactItem/*[in,opt]*/= TNoParam()) = 0; // [64013]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::RecipientPtr __fastcall get_CurrentUser(void)
  {
    Outlook_xp::RecipientPtr CurrentUser;
    OLECHECK(this->get_CurrentUser(&CurrentUser));
    return CurrentUser;
  }

  Outlook_xp::_FoldersPtr __fastcall get_Folders(void)
  {
    Outlook_xp::_FoldersPtr Folders;
    OLECHECK(this->get_Folders(&Folders));
    return Folders;
  }

  BSTR __fastcall get_Type(void)
  {
    BSTR Type = 0;
    OLECHECK(this->get_Type((BSTR*)&Type));
    return Type;
  }

  Outlook_xp::AddressListsPtr __fastcall get_AddressLists(void)
  {
    Outlook_xp::AddressListsPtr AddressLists;
    OLECHECK(this->get_AddressLists(&AddressLists));
    return AddressLists;
  }

  Outlook_xp::Recipient* __fastcall CreateRecipient(BSTR RecipientName/*[in]*/)
  {
    Outlook_xp::Recipient* Recipient = 0;
    OLECHECK(this->CreateRecipient(RecipientName, (Outlook_xp::Recipient**)&Recipient));
    return Recipient;
  }

  Outlook_xp::MAPIFolder* __fastcall GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetDefaultFolder(FolderType, (Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                                     VARIANT EntryIDStore/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetFolderFromID(EntryIDFolder, EntryIDStore, (Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  LPDISPATCH __fastcall GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                      VARIANT EntryIDStore/*[in,opt]*/= TNoParam())
  {
    LPDISPATCH Item;
    OLECHECK(this->GetItemFromID(EntryIDItem, EntryIDStore, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::Recipient* __fastcall GetRecipientFromID(BSTR EntryID/*[in]*/)
  {
    Outlook_xp::Recipient* Recipient = 0;
    OLECHECK(this->GetRecipientFromID(EntryID, (Outlook_xp::Recipient**)&Recipient));
    return Recipient;
  }

  Outlook_xp::MAPIFolder* __fastcall GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                            Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetSharedDefaultFolder(Recipient, FolderType, (Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall PickFolder(void)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->PickFolder((Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::SyncObjectsPtr __fastcall get_SyncObjects(void)
  {
    Outlook_xp::SyncObjectsPtr SyncObjects;
    OLECHECK(this->get_SyncObjects(&SyncObjects));
    return SyncObjects;
  }

  VARIANT_BOOL __fastcall get_Offline(void)
  {
    VARIANT_BOOL Offline;
    OLECHECK(this->get_Offline((VARIANT_BOOL*)&Offline));
    return Offline;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::RecipientPtr CurrentUser = {read = get_CurrentUser};
  __property   Outlook_xp::_FoldersPtr Folders = {read = get_Folders};
  __property   BSTR            Type = {read = get_Type};
  __property   Outlook_xp::AddressListsPtr AddressLists = {read = get_AddressLists};
  __property   Outlook_xp::SyncObjectsPtr SyncObjects = {read = get_SyncObjects};
  __property   VARIANT_BOOL    Offline = {read = get_Offline};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Recipient
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063045-0000-0000-C000-000000000046}
// *********************************************************************//
interface Recipient  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [109]
  virtual HRESULT STDMETHODCALLTYPE get_Address(BSTR* Address/*[out,retval]*/) = 0; // [12291]
  virtual HRESULT STDMETHODCALLTYPE get_AddressEntry(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/) = 0; // [121]
  virtual HRESULT STDMETHODCALLTYPE _set_AddressEntry(Outlook_xp::AddressEntry* AddressEntry/*[in]*/) = 0; // [121]
  virtual HRESULT STDMETHODCALLTYPE get_AutoResponse(BSTR* AutoResponse/*[out,retval]*/) = 0; // [106]
  virtual HRESULT STDMETHODCALLTYPE set_AutoResponse(BSTR AutoResponse/*[in]*/) = 0; // [106]
  virtual HRESULT STDMETHODCALLTYPE get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/) = 0; // [14592]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_Index(long* Index/*[out,retval]*/) = 0; // [91]
  virtual HRESULT STDMETHODCALLTYPE get_MeetingResponseStatus(Outlook_xp::OlResponseStatus* MeetingResponseStatus/*[out,retval]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Resolved(VARIANT_BOOL* Resolved/*[out,retval]*/) = 0; // [100]
  virtual HRESULT STDMETHODCALLTYPE get_TrackingStatus(Outlook_xp::OlTrackingStatus* TrackingStatus/*[out,retval]*/) = 0; // [118]
  virtual HRESULT STDMETHODCALLTYPE set_TrackingStatus(Outlook_xp::OlTrackingStatus TrackingStatus/*[in]*/) = 0; // [118]
  virtual HRESULT STDMETHODCALLTYPE get_TrackingStatusTime(DATE* TrackingStatusTime/*[out,retval]*/) = 0; // [119]
  virtual HRESULT STDMETHODCALLTYPE set_TrackingStatusTime(DATE TrackingStatusTime/*[in]*/) = 0; // [119]
  virtual HRESULT STDMETHODCALLTYPE get_Type(long* Type/*[out,retval]*/) = 0; // [3093]
  virtual HRESULT STDMETHODCALLTYPE set_Type(long Type/*[in]*/) = 0; // [3093]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [110]
  virtual HRESULT STDMETHODCALLTYPE FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                             VARIANT CompleteFormat/*[in,opt]*/, 
                                             BSTR* FreeBusyInfo/*[out,retval]*/) = 0; // [111]
  virtual HRESULT STDMETHODCALLTYPE Resolve(VARIANT_BOOL* Success/*[out,retval]*/) = 0; // [113]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Address(void)
  {
    BSTR Address = 0;
    OLECHECK(this->get_Address((BSTR*)&Address));
    return Address;
  }

  Outlook_xp::AddressEntryPtr __fastcall get_AddressEntry(void)
  {
    Outlook_xp::AddressEntryPtr AddressEntry;
    OLECHECK(this->get_AddressEntry(&AddressEntry));
    return AddressEntry;
  }

  BSTR __fastcall get_AutoResponse(void)
  {
    BSTR AutoResponse = 0;
    OLECHECK(this->get_AutoResponse((BSTR*)&AutoResponse));
    return AutoResponse;
  }

  Outlook_xp::OlDisplayType __fastcall get_DisplayType(void)
  {
    Outlook_xp::OlDisplayType DisplayType;
    OLECHECK(this->get_DisplayType((Outlook_xp::OlDisplayType*)&DisplayType));
    return DisplayType;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  long __fastcall get_Index(void)
  {
    long Index;
    OLECHECK(this->get_Index((long*)&Index));
    return Index;
  }

  Outlook_xp::OlResponseStatus __fastcall get_MeetingResponseStatus(void)
  {
    Outlook_xp::OlResponseStatus MeetingResponseStatus;
    OLECHECK(this->get_MeetingResponseStatus((Outlook_xp::OlResponseStatus*)&MeetingResponseStatus));
    return MeetingResponseStatus;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  VARIANT_BOOL __fastcall get_Resolved(void)
  {
    VARIANT_BOOL Resolved;
    OLECHECK(this->get_Resolved((VARIANT_BOOL*)&Resolved));
    return Resolved;
  }

  Outlook_xp::OlTrackingStatus __fastcall get_TrackingStatus(void)
  {
    Outlook_xp::OlTrackingStatus TrackingStatus;
    OLECHECK(this->get_TrackingStatus((Outlook_xp::OlTrackingStatus*)&TrackingStatus));
    return TrackingStatus;
  }

  DATE __fastcall get_TrackingStatusTime(void)
  {
    DATE TrackingStatusTime;
    OLECHECK(this->get_TrackingStatusTime((DATE*)&TrackingStatusTime));
    return TrackingStatusTime;
  }

  long __fastcall get_Type(void)
  {
    long Type;
    OLECHECK(this->get_Type((long*)&Type));
    return Type;
  }

  BSTR __fastcall FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                           VARIANT CompleteFormat/*[in,opt]*/= TNoParam())
  {
    BSTR FreeBusyInfo = 0;
    OLECHECK(this->FreeBusy(Start, MinPerChar, CompleteFormat, (BSTR*)&FreeBusyInfo));
    return FreeBusyInfo;
  }

  VARIANT_BOOL __fastcall Resolve(void)
  {
    VARIANT_BOOL Success;
    OLECHECK(this->Resolve((VARIANT_BOOL*)&Success));
    return Success;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Address = {read = get_Address};
  __property   Outlook_xp::AddressEntryPtr AddressEntry = {read = get_AddressEntry};
  __property   BSTR            AutoResponse = {read = get_AutoResponse, write = set_AutoResponse};
  __property   Outlook_xp::OlDisplayType DisplayType = {read = get_DisplayType};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   long            Index = {read = get_Index};
  __property   Outlook_xp::OlResponseStatus MeetingResponseStatus = {read = get_MeetingResponseStatus};
  __property   BSTR            Name = {read = get_Name};
  __property   VARIANT_BOOL    Resolved = {read = get_Resolved};
  __property   Outlook_xp::OlTrackingStatus TrackingStatus = {read = get_TrackingStatus, write = set_TrackingStatus};
  __property   DATE            TrackingStatusTime = {read = get_TrackingStatusTime, write = set_TrackingStatusTime};
  __property   long            Type = {read = get_Type, write = set_Type};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: AddressEntry
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304B-0000-0000-C000-000000000046}
// *********************************************************************//
interface AddressEntry  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Address(BSTR* Address/*[out,retval]*/) = 0; // [12291]
  virtual HRESULT STDMETHODCALLTYPE set_Address(BSTR Address/*[in]*/) = 0; // [12291]
  virtual HRESULT STDMETHODCALLTYPE get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/) = 0; // [14592]
  virtual HRESULT STDMETHODCALLTYPE get_ID(BSTR* ID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_Manager(Outlook_xp::AddressEntry** Manager/*[out,retval]*/) = 0; // [771]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE set_MAPIOBJECT(LPUNKNOWN MAPIOBJECT/*[in]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_Members(Outlook_xp::AddressEntries** Members/*[out,retval]*/) = 0; // [772]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR* Type/*[out,retval]*/) = 0; // [12290]
  virtual HRESULT STDMETHODCALLTYPE set_Type(BSTR Type/*[in]*/) = 0; // [12290]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [770]
  virtual HRESULT STDMETHODCALLTYPE Details(VARIANT HWnd/*[in,opt]*/= TNoParam()) = 0; // [769]
  virtual HRESULT STDMETHODCALLTYPE GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                                VARIANT CompleteFormat/*[in,opt]*/, 
                                                BSTR* FreeBusyInfo/*[out,retval]*/) = 0; // [774]
  virtual HRESULT STDMETHODCALLTYPE _Update(VARIANT MakePermanent/*[in,opt]*/= TNoParam(), 
                                            VARIANT Refresh/*[in,opt]*/= TNoParam()) = 0; // [768]
  virtual HRESULT STDMETHODCALLTYPE UpdateFreeBusy(void) = 0; // [775]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Address(void)
  {
    BSTR Address = 0;
    OLECHECK(this->get_Address((BSTR*)&Address));
    return Address;
  }

  Outlook_xp::OlDisplayType __fastcall get_DisplayType(void)
  {
    Outlook_xp::OlDisplayType DisplayType;
    OLECHECK(this->get_DisplayType((Outlook_xp::OlDisplayType*)&DisplayType));
    return DisplayType;
  }

  BSTR __fastcall get_ID(void)
  {
    BSTR ID = 0;
    OLECHECK(this->get_ID((BSTR*)&ID));
    return ID;
  }

  Outlook_xp::AddressEntryPtr __fastcall get_Manager(void)
  {
    Outlook_xp::AddressEntryPtr Manager;
    OLECHECK(this->get_Manager(&Manager));
    return Manager;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  Outlook_xp::AddressEntriesPtr __fastcall get_Members(void)
  {
    Outlook_xp::AddressEntriesPtr Members;
    OLECHECK(this->get_Members(&Members));
    return Members;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  BSTR __fastcall get_Type(void)
  {
    BSTR Type = 0;
    OLECHECK(this->get_Type((BSTR*)&Type));
    return Type;
  }

  BSTR __fastcall GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                              VARIANT CompleteFormat/*[in,opt]*/= TNoParam())
  {
    BSTR FreeBusyInfo = 0;
    OLECHECK(this->GetFreeBusy(Start, MinPerChar, CompleteFormat, (BSTR*)&FreeBusyInfo));
    return FreeBusyInfo;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Address = {read = get_Address, write = set_Address};
  __property   Outlook_xp::OlDisplayType DisplayType = {read = get_DisplayType};
  __property   BSTR            ID = {read = get_ID};
  __property   Outlook_xp::AddressEntryPtr Manager = {read = get_Manager};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT, write = set_MAPIOBJECT};
  __property   Outlook_xp::AddressEntriesPtr Members = {read = get_Members};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Type = {read = get_Type, write = set_Type};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: AddressEntries
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304A-0000-0000-C000-000000000046}
// *********************************************************************//
interface AddressEntries  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::AddressEntry** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/) = 0; // [90]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/, 
                                        VARIANT Address/*[in,opt]*/, 
                                        Outlook_xp::AddressEntry** Entry/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE GetFirst(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/) = 0; // [86]
  virtual HRESULT STDMETHODCALLTYPE GetLast(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/) = 0; // [88]
  virtual HRESULT STDMETHODCALLTYPE GetNext(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/) = 0; // [87]
  virtual HRESULT STDMETHODCALLTYPE GetPrevious(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/) = 0; // [89]
  virtual HRESULT STDMETHODCALLTYPE Sort(VARIANT Property/*[in,opt]*/= TNoParam(), 
                                         VARIANT Order/*[in,opt]*/= TNoParam()) = 0; // [97]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::AddressEntry* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::AddressEntry* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::AddressEntry**)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall get_RawTable(void)
  {
    LPUNKNOWN RawTable;
    OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
    return RawTable;
  }

  Outlook_xp::AddressEntry* __fastcall Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/= TNoParam(), 
                                           VARIANT Address/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::AddressEntry* Entry = 0;
    OLECHECK(this->Add(Type, Name, Address, (Outlook_xp::AddressEntry**)&Entry));
    return Entry;
  }

  Outlook_xp::AddressEntry* __fastcall GetFirst(void)
  {
    Outlook_xp::AddressEntry* AddressEntry = 0;
    OLECHECK(this->GetFirst((Outlook_xp::AddressEntry**)&AddressEntry));
    return AddressEntry;
  }

  Outlook_xp::AddressEntry* __fastcall GetLast(void)
  {
    Outlook_xp::AddressEntry* AddressEntry = 0;
    OLECHECK(this->GetLast((Outlook_xp::AddressEntry**)&AddressEntry));
    return AddressEntry;
  }

  Outlook_xp::AddressEntry* __fastcall GetNext(void)
  {
    Outlook_xp::AddressEntry* AddressEntry = 0;
    OLECHECK(this->GetNext((Outlook_xp::AddressEntry**)&AddressEntry));
    return AddressEntry;
  }

  Outlook_xp::AddressEntry* __fastcall GetPrevious(void)
  {
    Outlook_xp::AddressEntry* AddressEntry = 0;
    OLECHECK(this->GetPrevious((Outlook_xp::AddressEntry**)&AddressEntry));
    return AddressEntry;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Folders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063040-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Folders  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::MAPIFolder** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/) = 0; // [90]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/, 
                                        Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE GetFirst(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [86]
  virtual HRESULT STDMETHODCALLTYPE GetLast(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [88]
  virtual HRESULT STDMETHODCALLTYPE GetNext(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [87]
  virtual HRESULT STDMETHODCALLTYPE GetPrevious(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [89]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::MAPIFolder* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::MAPIFolder* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::MAPIFolder**)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall get_RawTable(void)
  {
    LPUNKNOWN RawTable;
    OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
    return RawTable;
  }

  Outlook_xp::MAPIFolder* __fastcall Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->Add(Name, Type, (Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall GetFirst(void)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetFirst((Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall GetLast(void)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetLast((Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall GetNext(void)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetNext((Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::MAPIFolder* __fastcall GetPrevious(void)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->GetPrevious((Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: MAPIFolder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063006-0000-0000-C000-000000000046}
// *********************************************************************//
interface MAPIFolder  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/) = 0; // [12550]
  virtual HRESULT STDMETHODCALLTYPE get_DefaultMessageClass(BSTR* DefaultMessageClass/*[out,retval]*/) = 0; // [12551]
  virtual HRESULT STDMETHODCALLTYPE get_Description(BSTR* Description/*[out,retval]*/) = 0; // [12292]
  virtual HRESULT STDMETHODCALLTYPE set_Description(BSTR Description/*[in]*/) = 0; // [12292]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE get_Items(Outlook_xp::_Items** Items/*[out,retval]*/) = 0; // [12544]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_StoreID(BSTR* StoreID/*[out,retval]*/) = 0; // [12552]
  virtual HRESULT STDMETHODCALLTYPE get_UnReadItemCount(long* UnReadItemCount/*[out,retval]*/) = 0; // [13827]
  virtual HRESULT STDMETHODCALLTYPE CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/, 
                                           Outlook_xp::MAPIFolder** Folder/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61509]
  virtual HRESULT STDMETHODCALLTYPE Display(void) = 0; // [12548]
  virtual HRESULT STDMETHODCALLTYPE GetExplorer(VARIANT DisplayMode/*[in,opt]*/, 
                                                Outlook_xp::_Explorer** Explorer/*[out,retval]*/) = 0; // [12545]
  virtual HRESULT STDMETHODCALLTYPE MoveTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE get_UserPermissions(LPDISPATCH* UserPermissions/*[out,retval]*/) = 0; // [12561]
  virtual HRESULT STDMETHODCALLTYPE get_WebViewOn(VARIANT_BOOL* WebViewOn/*[out,retval]*/) = 0; // [12562]
  virtual HRESULT STDMETHODCALLTYPE set_WebViewOn(VARIANT_BOOL WebViewOn/*[in]*/) = 0; // [12562]
  virtual HRESULT STDMETHODCALLTYPE get_WebViewURL(BSTR* WebViewURL/*[out,retval]*/) = 0; // [12563]
  virtual HRESULT STDMETHODCALLTYPE set_WebViewURL(BSTR WebViewURL/*[in]*/) = 0; // [12563]
  virtual HRESULT STDMETHODCALLTYPE get_WebViewAllowNavigation(VARIANT_BOOL* WebViewAllowNavigation/*[out,retval]*/) = 0; // [12564]
  virtual HRESULT STDMETHODCALLTYPE set_WebViewAllowNavigation(VARIANT_BOOL WebViewAllowNavigation/*[in]*/) = 0; // [12564]
  virtual HRESULT STDMETHODCALLTYPE AddToPFFavorites(void) = 0; // [12565]
  virtual HRESULT STDMETHODCALLTYPE get_AddressBookName(BSTR* AddressBookName/*[out,retval]*/) = 0; // [64110]
  virtual HRESULT STDMETHODCALLTYPE set_AddressBookName(BSTR AddressBookName/*[in]*/) = 0; // [64110]
  virtual HRESULT STDMETHODCALLTYPE get_ShowAsOutlookAB(VARIANT_BOOL* ShowAsOutlookAB/*[out,retval]*/) = 0; // [64111]
  virtual HRESULT STDMETHODCALLTYPE set_ShowAsOutlookAB(VARIANT_BOOL ShowAsOutlookAB/*[in]*/) = 0; // [64111]
  virtual HRESULT STDMETHODCALLTYPE get_FolderPath(BSTR* FolderPath/*[out,retval]*/) = 0; // [64120]
  virtual HRESULT STDMETHODCALLTYPE AddToFavorites(VARIANT fNoUI/*[in,opt]*/= TNoParam(), 
                                                   VARIANT Name/*[in,opt]*/= TNoParam()) = 0; // [64097]
  virtual HRESULT STDMETHODCALLTYPE get_InAppFolderSyncObject(VARIANT_BOOL* InAppFolderSyncObject/*[out,retval]*/) = 0; // [64075]
  virtual HRESULT STDMETHODCALLTYPE set_InAppFolderSyncObject(VARIANT_BOOL InAppFolderSyncObject/*[in]*/) = 0; // [64075]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentView(Outlook_xp::View** CurrentView/*[out,retval]*/) = 0; // [8704]
  virtual HRESULT STDMETHODCALLTYPE get_CustomViewsOnly(VARIANT_BOOL* CustomViewsOnly/*[out,retval]*/) = 0; // [64070]
  virtual HRESULT STDMETHODCALLTYPE set_CustomViewsOnly(VARIANT_BOOL CustomViewsOnly/*[in]*/) = 0; // [64070]
  virtual HRESULT STDMETHODCALLTYPE get_Views(Outlook_xp::_Views** Views/*[out,retval]*/) = 0; // [12553]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_FullFolderPath(BSTR* FullFolderPath/*[out,retval]*/) = 0; // [64145]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::OlItemType __fastcall get_DefaultItemType(void)
  {
    Outlook_xp::OlItemType DefaultItemType;
    OLECHECK(this->get_DefaultItemType((Outlook_xp::OlItemType*)&DefaultItemType));
    return DefaultItemType;
  }

  BSTR __fastcall get_DefaultMessageClass(void)
  {
    BSTR DefaultMessageClass = 0;
    OLECHECK(this->get_DefaultMessageClass((BSTR*)&DefaultMessageClass));
    return DefaultMessageClass;
  }

  BSTR __fastcall get_Description(void)
  {
    BSTR Description = 0;
    OLECHECK(this->get_Description((BSTR*)&Description));
    return Description;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::_FoldersPtr __fastcall get_Folders(void)
  {
    Outlook_xp::_FoldersPtr Folders;
    OLECHECK(this->get_Folders(&Folders));
    return Folders;
  }

  Outlook_xp::_ItemsPtr __fastcall get_Items(void)
  {
    Outlook_xp::_ItemsPtr Items;
    OLECHECK(this->get_Items(&Items));
    return Items;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  BSTR __fastcall get_StoreID(void)
  {
    BSTR StoreID = 0;
    OLECHECK(this->get_StoreID((BSTR*)&StoreID));
    return StoreID;
  }

  long __fastcall get_UnReadItemCount(void)
  {
    long UnReadItemCount;
    OLECHECK(this->get_UnReadItemCount((long*)&UnReadItemCount));
    return UnReadItemCount;
  }

  Outlook_xp::MAPIFolder* __fastcall CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/)
  {
    Outlook_xp::MAPIFolder* Folder = 0;
    OLECHECK(this->CopyTo(DestinationFolder, (Outlook_xp::MAPIFolder**)&Folder));
    return Folder;
  }

  Outlook_xp::_Explorer* __fastcall GetExplorer(VARIANT DisplayMode/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::_Explorer* Explorer = 0;
    OLECHECK(this->GetExplorer(DisplayMode, (Outlook_xp::_Explorer**)&Explorer));
    return Explorer;
  }

  LPDISPATCH __fastcall get_UserPermissions(void)
  {
    LPDISPATCH UserPermissions;
    OLECHECK(this->get_UserPermissions((LPDISPATCH*)&UserPermissions));
    return UserPermissions;
  }

  VARIANT_BOOL __fastcall get_WebViewOn(void)
  {
    VARIANT_BOOL WebViewOn;
    OLECHECK(this->get_WebViewOn((VARIANT_BOOL*)&WebViewOn));
    return WebViewOn;
  }

  BSTR __fastcall get_WebViewURL(void)
  {
    BSTR WebViewURL = 0;
    OLECHECK(this->get_WebViewURL((BSTR*)&WebViewURL));
    return WebViewURL;
  }

  VARIANT_BOOL __fastcall get_WebViewAllowNavigation(void)
  {
    VARIANT_BOOL WebViewAllowNavigation;
    OLECHECK(this->get_WebViewAllowNavigation((VARIANT_BOOL*)&WebViewAllowNavigation));
    return WebViewAllowNavigation;
  }

  BSTR __fastcall get_AddressBookName(void)
  {
    BSTR AddressBookName = 0;
    OLECHECK(this->get_AddressBookName((BSTR*)&AddressBookName));
    return AddressBookName;
  }

  VARIANT_BOOL __fastcall get_ShowAsOutlookAB(void)
  {
    VARIANT_BOOL ShowAsOutlookAB;
    OLECHECK(this->get_ShowAsOutlookAB((VARIANT_BOOL*)&ShowAsOutlookAB));
    return ShowAsOutlookAB;
  }

  BSTR __fastcall get_FolderPath(void)
  {
    BSTR FolderPath = 0;
    OLECHECK(this->get_FolderPath((BSTR*)&FolderPath));
    return FolderPath;
  }

  VARIANT_BOOL __fastcall get_InAppFolderSyncObject(void)
  {
    VARIANT_BOOL InAppFolderSyncObject;
    OLECHECK(this->get_InAppFolderSyncObject((VARIANT_BOOL*)&InAppFolderSyncObject));
    return InAppFolderSyncObject;
  }

  Outlook_xp::ViewPtr __fastcall get_CurrentView(void)
  {
    Outlook_xp::ViewPtr CurrentView;
    OLECHECK(this->get_CurrentView(&CurrentView));
    return CurrentView;
  }

  VARIANT_BOOL __fastcall get_CustomViewsOnly(void)
  {
    VARIANT_BOOL CustomViewsOnly;
    OLECHECK(this->get_CustomViewsOnly((VARIANT_BOOL*)&CustomViewsOnly));
    return CustomViewsOnly;
  }

  Outlook_xp::_ViewsPtr __fastcall get_Views(void)
  {
    Outlook_xp::_ViewsPtr Views;
    OLECHECK(this->get_Views(&Views));
    return Views;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_FullFolderPath(void)
  {
    BSTR FullFolderPath = 0;
    OLECHECK(this->get_FullFolderPath((BSTR*)&FullFolderPath));
    return FullFolderPath;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OlItemType DefaultItemType = {read = get_DefaultItemType};
  __property   BSTR            DefaultMessageClass = {read = get_DefaultMessageClass};
  __property   BSTR            Description = {read = get_Description, write = set_Description};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::_FoldersPtr Folders = {read = get_Folders};
  __property   Outlook_xp::_ItemsPtr Items = {read = get_Items};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            StoreID = {read = get_StoreID};
  __property   long            UnReadItemCount = {read = get_UnReadItemCount};
  __property   LPDISPATCH      UserPermissions = {read = get_UserPermissions};
  __property   VARIANT_BOOL    WebViewOn = {read = get_WebViewOn, write = set_WebViewOn};
  __property   BSTR            WebViewURL = {read = get_WebViewURL, write = set_WebViewURL};
  __property   VARIANT_BOOL    WebViewAllowNavigation = {read = get_WebViewAllowNavigation, write = set_WebViewAllowNavigation};
  __property   BSTR            AddressBookName = {read = get_AddressBookName, write = set_AddressBookName};
  __property   VARIANT_BOOL    ShowAsOutlookAB = {read = get_ShowAsOutlookAB, write = set_ShowAsOutlookAB};
  __property   BSTR            FolderPath = {read = get_FolderPath};
  __property   VARIANT_BOOL    InAppFolderSyncObject = {read = get_InAppFolderSyncObject, write = set_InAppFolderSyncObject};
  __property   Outlook_xp::ViewPtr CurrentView = {read = get_CurrentView};
  __property   VARIANT_BOOL    CustomViewsOnly = {read = get_CustomViewsOnly, write = set_CustomViewsOnly};
  __property   Outlook_xp::_ViewsPtr Views = {read = get_Views};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            FullFolderPath = {read = get_FullFolderPath};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Items
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063041-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Items  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/) = 0; // [90]
  virtual HRESULT STDMETHODCALLTYPE get_IncludeRecurrences(VARIANT_BOOL* IncludeRecurrences/*[out,retval]*/) = 0; // [206]
  virtual HRESULT STDMETHODCALLTYPE set_IncludeRecurrences(VARIANT_BOOL IncludeRecurrences/*[in]*/) = 0; // [206]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Type/*[in,opt]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Find(BSTR Filter/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [98]
  virtual HRESULT STDMETHODCALLTYPE FindNext(LPDISPATCH* Item/*[out,retval]*/) = 0; // [99]
  virtual HRESULT STDMETHODCALLTYPE GetFirst(LPDISPATCH* Item/*[out,retval]*/) = 0; // [86]
  virtual HRESULT STDMETHODCALLTYPE GetLast(LPDISPATCH* Item/*[out,retval]*/) = 0; // [88]
  virtual HRESULT STDMETHODCALLTYPE GetNext(LPDISPATCH* Item/*[out,retval]*/) = 0; // [87]
  virtual HRESULT STDMETHODCALLTYPE GetPrevious(LPDISPATCH* Item/*[out,retval]*/) = 0; // [89]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [84]
  virtual HRESULT STDMETHODCALLTYPE ResetColumns(void) = 0; // [93]
  virtual HRESULT STDMETHODCALLTYPE Restrict(BSTR Filter/*[in]*/, 
                                             Outlook_xp::_Items** Items/*[out,retval]*/) = 0; // [100]
  virtual HRESULT STDMETHODCALLTYPE SetColumns(BSTR Columns/*[in]*/) = 0; // [92]
  virtual HRESULT STDMETHODCALLTYPE Sort(BSTR Property/*[in]*/, 
                                         VARIANT Descending/*[in,opt]*/= TNoParam()) = 0; // [97]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall get_RawTable(void)
  {
    LPUNKNOWN RawTable;
    OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
    return RawTable;
  }

  VARIANT_BOOL __fastcall get_IncludeRecurrences(void)
  {
    VARIANT_BOOL IncludeRecurrences;
    OLECHECK(this->get_IncludeRecurrences((VARIANT_BOOL*)&IncludeRecurrences));
    return IncludeRecurrences;
  }

  LPDISPATCH __fastcall Add(VARIANT Type/*[in,opt]*/= TNoParam())
  {
    LPDISPATCH Item;
    OLECHECK(this->Add(Type, (LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Find(BSTR Filter/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Find(Filter, (LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall FindNext(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->FindNext((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetFirst(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetFirst((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetLast(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetLast((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetNext(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetNext((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetPrevious(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetPrevious((LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::_Items* __fastcall Restrict(BSTR Filter/*[in]*/)
  {
    Outlook_xp::_Items* Items = 0;
    OLECHECK(this->Restrict(Filter, (Outlook_xp::_Items**)&Items));
    return Items;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   VARIANT_BOOL    IncludeRecurrences = {read = get_IncludeRecurrences, write = set_IncludeRecurrences};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Explorer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063003-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Explorer  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/) = 0; // [8448]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentFolder(Outlook_xp::MAPIFolder** CurrentFolder/*[out,retval]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE _set_CurrentFolder(Outlook_xp::MAPIFolder* CurrentFolder/*[in]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE Close(void) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE Display(void) = 0; // [8452]
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* Caption/*[out,retval]*/) = 0; // [8465]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentView(VARIANT* CurrentView/*[out,retval]*/) = 0; // [8704]
  virtual HRESULT STDMETHODCALLTYPE set_CurrentView(VARIANT CurrentView/*[in]*/) = 0; // [8704]
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0; // [8468]
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0; // [8468]
  virtual HRESULT STDMETHODCALLTYPE get_Left(long* Left/*[out,retval]*/) = 0; // [8469]
  virtual HRESULT STDMETHODCALLTYPE set_Left(long Left/*[in]*/) = 0; // [8469]
  virtual HRESULT STDMETHODCALLTYPE get_Panes(Outlook_xp::Panes** Panes/*[out,retval]*/) = 0; // [8705]
  virtual HRESULT STDMETHODCALLTYPE get_Selection(Outlook_xp::Selection** Selection/*[out,retval]*/) = 0; // [8706]
  virtual HRESULT STDMETHODCALLTYPE get_Top(long* Top/*[out,retval]*/) = 0; // [8470]
  virtual HRESULT STDMETHODCALLTYPE set_Top(long Top/*[in]*/) = 0; // [8470]
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0; // [8471]
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0; // [8471]
  virtual HRESULT STDMETHODCALLTYPE get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/) = 0; // [8466]
  virtual HRESULT STDMETHODCALLTYPE set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/) = 0; // [8466]
  virtual HRESULT STDMETHODCALLTYPE Activate(void) = 0; // [8467]
  virtual HRESULT STDMETHODCALLTYPE IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/, 
                                                  VARIANT_BOOL* IsPaneVisible/*[out,retval]*/) = 0; // [8707]
  virtual HRESULT STDMETHODCALLTYPE ShowPane(Outlook_xp::OlPane Pane/*[in]*/, 
                                             VARIANT_BOOL Visible/*[in]*/) = 0; // [8708]
  virtual HRESULT STDMETHODCALLTYPE get_Views(LPDISPATCH* Views/*[out,retval]*/) = 0; // [12553]
  virtual HRESULT STDMETHODCALLTYPE get_HTMLDocument(LPDISPATCH* HTMLDocument/*[out,retval]*/) = 0; // [64146]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void)
  {
    Office_xp::CommandBarsPtr CommandBars;
    OLECHECK(this->get_CommandBars(&CommandBars));
    return CommandBars;
  }

  Outlook_xp::MAPIFolderPtr __fastcall get_CurrentFolder(void)
  {
    Outlook_xp::MAPIFolderPtr CurrentFolder;
    OLECHECK(this->get_CurrentFolder(&CurrentFolder));
    return CurrentFolder;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR Caption = 0;
    OLECHECK(this->get_Caption((BSTR*)&Caption));
    return Caption;
  }

  VARIANT __fastcall get_CurrentView(void)
  {
    VARIANT CurrentView;
    OLECHECK(this->get_CurrentView((VARIANT*)&CurrentView));
    return CurrentView;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }

  long __fastcall get_Left(void)
  {
    long Left;
    OLECHECK(this->get_Left((long*)&Left));
    return Left;
  }

  Outlook_xp::PanesPtr __fastcall get_Panes(void)
  {
    Outlook_xp::PanesPtr Panes;
    OLECHECK(this->get_Panes(&Panes));
    return Panes;
  }

  Outlook_xp::SelectionPtr __fastcall get_Selection(void)
  {
    Outlook_xp::SelectionPtr Selection;
    OLECHECK(this->get_Selection(&Selection));
    return Selection;
  }

  long __fastcall get_Top(void)
  {
    long Top;
    OLECHECK(this->get_Top((long*)&Top));
    return Top;
  }

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  Outlook_xp::OlWindowState __fastcall get_WindowState(void)
  {
    Outlook_xp::OlWindowState WindowState;
    OLECHECK(this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState));
    return WindowState;
  }

  VARIANT_BOOL __fastcall IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/)
  {
    VARIANT_BOOL IsPaneVisible;
    OLECHECK(this->IsPaneVisible(Pane, (VARIANT_BOOL*)&IsPaneVisible));
    return IsPaneVisible;
  }

  LPDISPATCH __fastcall get_Views(void)
  {
    LPDISPATCH Views;
    OLECHECK(this->get_Views((LPDISPATCH*)&Views));
    return Views;
  }

  LPDISPATCH __fastcall get_HTMLDocument(void)
  {
    LPDISPATCH HTMLDocument;
    OLECHECK(this->get_HTMLDocument((LPDISPATCH*)&HTMLDocument));
    return HTMLDocument;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   Outlook_xp::MAPIFolderPtr CurrentFolder = {read = get_CurrentFolder};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   Outlook_xp::PanesPtr Panes = {read = get_Panes};
  __property   Outlook_xp::SelectionPtr Selection = {read = get_Selection};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};
  __property   LPDISPATCH      Views = {read = get_Views};
  __property   LPDISPATCH      HTMLDocument = {read = get_HTMLDocument};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Panes
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063009-0000-0000-C000-000000000046}
// *********************************************************************//
interface Panes  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Selection
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063087-0000-0000-C000-000000000046}
// *********************************************************************//
interface Selection  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: View
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063095-0000-0000-C000-000000000046}
// *********************************************************************//
interface View  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE Apply(void) = 0; // [407]
  virtual HRESULT STDMETHODCALLTYPE Copy(BSTR Name/*[in]*/, 
                                         Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                                         Outlook_xp::View** ppview/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Reset(void) = 0; // [64068]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE get_Language(BSTR* Language/*[out,retval]*/) = 0; // [64065]
  virtual HRESULT STDMETHODCALLTYPE set_Language(BSTR Language/*[in]*/) = 0; // [64065]
  virtual HRESULT STDMETHODCALLTYPE get_LockUserChanges(VARIANT_BOOL* LockUserChanges/*[out,retval]*/) = 0; // [64064]
  virtual HRESULT STDMETHODCALLTYPE set_LockUserChanges(VARIANT_BOOL LockUserChanges/*[in]*/) = 0; // [64064]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_SaveOption(Outlook_xp::OlViewSaveOption* SaveOption/*[out,retval]*/) = 0; // [64063]
  virtual HRESULT STDMETHODCALLTYPE get_Standard(VARIANT_BOOL* Standard/*[out,retval]*/) = 0; // [64062]
  virtual HRESULT STDMETHODCALLTYPE get_ViewType(Outlook_xp::OlViewType* ViewType/*[out,retval]*/) = 0; // [404]
  virtual HRESULT STDMETHODCALLTYPE get_XML(BSTR* XML/*[out,retval]*/) = 0; // [64060]
  virtual HRESULT STDMETHODCALLTYPE set_XML(BSTR XML/*[in]*/) = 0; // [64060]
  virtual HRESULT STDMETHODCALLTYPE GoToDate(DATE Date/*[in]*/) = 0; // [64054]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::View* __fastcall Copy(BSTR Name/*[in]*/, 
                                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/)
  {
    Outlook_xp::View* ppview = 0;
    OLECHECK(this->Copy(Name, SaveOption, (Outlook_xp::View**)&ppview));
    return ppview;
  }

  BSTR __fastcall get_Language(void)
  {
    BSTR Language = 0;
    OLECHECK(this->get_Language((BSTR*)&Language));
    return Language;
  }

  VARIANT_BOOL __fastcall get_LockUserChanges(void)
  {
    VARIANT_BOOL LockUserChanges;
    OLECHECK(this->get_LockUserChanges((VARIANT_BOOL*)&LockUserChanges));
    return LockUserChanges;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  Outlook_xp::OlViewSaveOption __fastcall get_SaveOption(void)
  {
    Outlook_xp::OlViewSaveOption SaveOption;
    OLECHECK(this->get_SaveOption((Outlook_xp::OlViewSaveOption*)&SaveOption));
    return SaveOption;
  }

  VARIANT_BOOL __fastcall get_Standard(void)
  {
    VARIANT_BOOL Standard;
    OLECHECK(this->get_Standard((VARIANT_BOOL*)&Standard));
    return Standard;
  }

  Outlook_xp::OlViewType __fastcall get_ViewType(void)
  {
    Outlook_xp::OlViewType ViewType;
    OLECHECK(this->get_ViewType((Outlook_xp::OlViewType*)&ViewType));
    return ViewType;
  }

  BSTR __fastcall get_XML(void)
  {
    BSTR XML = 0;
    OLECHECK(this->get_XML((BSTR*)&XML));
    return XML;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Language = {read = get_Language, write = set_Language};
  __property   VARIANT_BOOL    LockUserChanges = {read = get_LockUserChanges, write = set_LockUserChanges};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Outlook_xp::OlViewSaveOption SaveOption = {read = get_SaveOption};
  __property   VARIANT_BOOL    Standard = {read = get_Standard};
  __property   Outlook_xp::OlViewType ViewType = {read = get_ViewType};
  __property   BSTR            XML = {read = get_XML, write = set_XML};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Views
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308D-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Views  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::View** Item/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                        Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                                        Outlook_xp::View** ppview/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [84]
  virtual HRESULT STDMETHODCALLTYPE _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::View* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::View* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::View**)&Item));
    return Item;
  }

  Outlook_xp::View* __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                   Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/)
  {
    Outlook_xp::View* ppview = 0;
    OLECHECK(this->Add(Name, ViewType, SaveOption, (Outlook_xp::View**)&ppview));
    return ppview;
  }

  LPUNKNOWN __fastcall _NewEnum(void)
  {
    LPUNKNOWN ppvObject;
    OLECHECK(this->_NewEnum((LPUNKNOWN*)&ppvObject));
    return ppvObject;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: AddressLists
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063048-0000-0000-C000-000000000046}
// *********************************************************************//
interface AddressLists  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::AddressList** Item/*[out,retval]*/) = 0; // [81]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::AddressList* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::AddressList* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::AddressList**)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: AddressList
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063049-0000-0000-C000-000000000046}
// *********************************************************************//
interface AddressList  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_AddressEntries(Outlook_xp::AddressEntries** AddressEntries/*[out,retval]*/) = 0; // [256]
  virtual HRESULT STDMETHODCALLTYPE get_ID(BSTR* ID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_Index(long* Index/*[out,retval]*/) = 0; // [91]
  virtual HRESULT STDMETHODCALLTYPE get_IsReadOnly(VARIANT_BOOL* IsReadOnly/*[out,retval]*/) = 0; // [61463]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::AddressEntriesPtr __fastcall get_AddressEntries(void)
  {
    Outlook_xp::AddressEntriesPtr AddressEntries;
    OLECHECK(this->get_AddressEntries(&AddressEntries));
    return AddressEntries;
  }

  BSTR __fastcall get_ID(void)
  {
    BSTR ID = 0;
    OLECHECK(this->get_ID((BSTR*)&ID));
    return ID;
  }

  long __fastcall get_Index(void)
  {
    long Index;
    OLECHECK(this->get_Index((long*)&Index));
    return Index;
  }

  VARIANT_BOOL __fastcall get_IsReadOnly(void)
  {
    VARIANT_BOOL IsReadOnly;
    OLECHECK(this->get_IsReadOnly((VARIANT_BOOL*)&IsReadOnly));
    return IsReadOnly;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::AddressEntriesPtr AddressEntries = {read = get_AddressEntries};
  __property   BSTR            ID = {read = get_ID};
  __property   long            Index = {read = get_Index};
  __property   VARIANT_BOOL    IsReadOnly = {read = get_IsReadOnly};
  __property   BSTR            Name = {read = get_Name};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: SyncObjects
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063086-0000-0000-C000-000000000046}
// *********************************************************************//
interface SyncObjects  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::SyncObject** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE get_AppFolders(Outlook_xp::_SyncObject** AppFolders/*[out,retval]*/) = 0; // [64074]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::SyncObject* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::SyncObject* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::SyncObject**)&Item));
    return Item;
  }

  Outlook_xp::_SyncObjectPtr __fastcall get_AppFolders(void)
  {
    Outlook_xp::_SyncObjectPtr AppFolders;
    OLECHECK(this->get_AppFolders(&AppFolders));
    return AppFolders;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   Outlook_xp::_SyncObjectPtr AppFolders = {read = get_AppFolders};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _SyncObject
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063083-0000-0000-C000-000000000046}
// *********************************************************************//
interface _SyncObject  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [8448]
  virtual HRESULT STDMETHODCALLTYPE Start(void) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE Stop(void) = 0; // [8450]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: SyncObjectEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063085-0000-0000-C000-000000000046}
// *********************************************************************//
interface SyncObjectEvents : public TDispWrapper<IDispatch>
{
  void __fastcall SyncStart()
  {
    _TDispID _dispid(/* SyncStart */ DISPID(61441));
    OleProcedure(_dispid);
  }

  void __fastcall Progress(Outlook_xp::OlSyncState State/*[in]*/, BSTR Description/*[in]*/, 
                           long Value/*[in]*/, long Max/*[in]*/)
  {
    _TDispID _dispid(/* Progress */ DISPID(61442));
    TAutoArgs<4> _args;
    _args[1] = (int)State /*[VT_USERDEFINED:0]*/;
    _args[2] = Description /*[VT_BSTR:0]*/;
    _args[3] = Value /*[VT_I4:0]*/;
    _args[4] = Max /*[VT_I4:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall OnError(long Code/*[in]*/, BSTR Description/*[in]*/)
  {
    _TDispID _dispid(/* OnError */ DISPID(61443));
    TAutoArgs<2> _args;
    _args[1] = Code /*[VT_I4:0]*/;
    _args[2] = Description /*[VT_BSTR:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall SyncEnd()
  {
    _TDispID _dispid(/* SyncEnd */ DISPID(61444));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: _Inspector
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063005-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Inspector  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/) = 0; // [8448]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentItem(LPDISPATCH* CurrentItem/*[out,retval]*/) = 0; // [8450]
  virtual HRESULT STDMETHODCALLTYPE get_EditorType(Outlook_xp::OlEditorType* EditorType/*[out,retval]*/) = 0; // [8464]
  virtual HRESULT STDMETHODCALLTYPE get_ModifiedFormPages(LPDISPATCH* ModifiedFormPages/*[out,retval]*/) = 0; // [8454]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [8452]
  virtual HRESULT STDMETHODCALLTYPE HideFormPage(BSTR PageName/*[in]*/) = 0; // [8456]
  virtual HRESULT STDMETHODCALLTYPE IsWordMail(VARIANT_BOOL* IsWordMail/*[out,retval]*/) = 0; // [8453]
  virtual HRESULT STDMETHODCALLTYPE SetCurrentFormPage(BSTR PageName/*[in]*/) = 0; // [8460]
  virtual HRESULT STDMETHODCALLTYPE ShowFormPage(BSTR PageName/*[in]*/) = 0; // [8457]
  virtual HRESULT STDMETHODCALLTYPE get_HTMLEditor(LPDISPATCH* HTMLEditor/*[out,retval]*/) = 0; // [8462]
  virtual HRESULT STDMETHODCALLTYPE get_WordEditor(LPDISPATCH* WordEditor/*[out,retval]*/) = 0; // [8463]
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* Caption/*[out,retval]*/) = 0; // [8465]
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0; // [8468]
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0; // [8468]
  virtual HRESULT STDMETHODCALLTYPE get_Left(long* Left/*[out,retval]*/) = 0; // [8469]
  virtual HRESULT STDMETHODCALLTYPE set_Left(long Left/*[in]*/) = 0; // [8469]
  virtual HRESULT STDMETHODCALLTYPE get_Top(long* Top/*[out,retval]*/) = 0; // [8470]
  virtual HRESULT STDMETHODCALLTYPE set_Top(long Top/*[in]*/) = 0; // [8470]
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0; // [8471]
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0; // [8471]
  virtual HRESULT STDMETHODCALLTYPE get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/) = 0; // [8466]
  virtual HRESULT STDMETHODCALLTYPE set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/) = 0; // [8466]
  virtual HRESULT STDMETHODCALLTYPE Activate(void) = 0; // [8467]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void)
  {
    Office_xp::CommandBarsPtr CommandBars;
    OLECHECK(this->get_CommandBars(&CommandBars));
    return CommandBars;
  }

  LPDISPATCH __fastcall get_CurrentItem(void)
  {
    LPDISPATCH CurrentItem;
    OLECHECK(this->get_CurrentItem((LPDISPATCH*)&CurrentItem));
    return CurrentItem;
  }

  Outlook_xp::OlEditorType __fastcall get_EditorType(void)
  {
    Outlook_xp::OlEditorType EditorType;
    OLECHECK(this->get_EditorType((Outlook_xp::OlEditorType*)&EditorType));
    return EditorType;
  }

  LPDISPATCH __fastcall get_ModifiedFormPages(void)
  {
    LPDISPATCH ModifiedFormPages;
    OLECHECK(this->get_ModifiedFormPages((LPDISPATCH*)&ModifiedFormPages));
    return ModifiedFormPages;
  }

  VARIANT_BOOL __fastcall IsWordMail(void)
  {
    VARIANT_BOOL IsWordMail;
    OLECHECK(this->IsWordMail((VARIANT_BOOL*)&IsWordMail));
    return IsWordMail;
  }

  LPDISPATCH __fastcall get_HTMLEditor(void)
  {
    LPDISPATCH HTMLEditor;
    OLECHECK(this->get_HTMLEditor((LPDISPATCH*)&HTMLEditor));
    return HTMLEditor;
  }

  LPDISPATCH __fastcall get_WordEditor(void)
  {
    LPDISPATCH WordEditor;
    OLECHECK(this->get_WordEditor((LPDISPATCH*)&WordEditor));
    return WordEditor;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR Caption = 0;
    OLECHECK(this->get_Caption((BSTR*)&Caption));
    return Caption;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }

  long __fastcall get_Left(void)
  {
    long Left;
    OLECHECK(this->get_Left((long*)&Left));
    return Left;
  }

  long __fastcall get_Top(void)
  {
    long Top;
    OLECHECK(this->get_Top((long*)&Top));
    return Top;
  }

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  Outlook_xp::OlWindowState __fastcall get_WindowState(void)
  {
    Outlook_xp::OlWindowState WindowState;
    OLECHECK(this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState));
    return WindowState;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   LPDISPATCH      CurrentItem = {read = get_CurrentItem};
  __property   Outlook_xp::OlEditorType EditorType = {read = get_EditorType};
  __property   LPDISPATCH      ModifiedFormPages = {read = get_ModifiedFormPages};
  __property   LPDISPATCH      HTMLEditor = {read = get_HTMLEditor};
  __property   LPDISPATCH      WordEditor = {read = get_WordEditor};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Explorers
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300A-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Explorers  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Explorer** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Folder/*[in]*/, 
                                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/, 
                                        Outlook_xp::_Explorer** Explorer/*[out,retval]*/) = 0; // [95]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Explorer* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Explorer* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Explorer**)&Item));
    return Item;
  }

  Outlook_xp::_Explorer* __fastcall Add(VARIANT Folder/*[in]*/, 
                                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/)
  {
    Outlook_xp::_Explorer* Explorer = 0;
    OLECHECK(this->Add(Folder, DisplayMode, (Outlook_xp::_Explorer**)&Explorer));
    return Explorer;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ExplorerEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304F-0000-0000-C000-000000000046}
// *********************************************************************//
interface ExplorerEvents : public TDispWrapper<IDispatch>
{
  void __fastcall Activate()
  {
    _TDispID _dispid(/* Activate */ DISPID(61441));
    OleProcedure(_dispid);
  }

  void __fastcall FolderSwitch()
  {
    _TDispID _dispid(/* FolderSwitch */ DISPID(61442));
    OleProcedure(_dispid);
  }

  void __fastcall BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeFolderSwitch */ DISPID(61443));
    TAutoArgs<2> _args;
    _args[1] = NewFolder /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ViewSwitch()
  {
    _TDispID _dispid(/* ViewSwitch */ DISPID(61444));
    OleProcedure(_dispid);
  }

  void __fastcall BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeViewSwitch */ DISPID(61445));
    TAutoArgs<2> _args;
    _args[1] = NewView /*[VT_VARIANT:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Deactivate()
  {
    _TDispID _dispid(/* Deactivate */ DISPID(61446));
    OleProcedure(_dispid);
  }

  void __fastcall SelectionChange()
  {
    _TDispID _dispid(/* SelectionChange */ DISPID(61447));
    OleProcedure(_dispid);
  }

  void __fastcall Close()
  {
    _TDispID _dispid(/* Close */ DISPID(61448));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: ExplorerEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300F-0000-0000-C000-000000000046}
// *********************************************************************//
interface ExplorerEvents_10 : public TDispWrapper<IDispatch>
{
  HRESULT __fastcall Activate()
  {
    _TDispID _dispid(/* Activate */ DISPID(61441));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall FolderSwitch()
  {
    _TDispID _dispid(/* FolderSwitch */ DISPID(61442));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeFolderSwitch */ DISPID(61443));
    TAutoArgs<2> _args;
    _args[1] = NewFolder /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall ViewSwitch()
  {
    _TDispID _dispid(/* ViewSwitch */ DISPID(61444));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeViewSwitch */ DISPID(61445));
    TAutoArgs<2> _args;
    _args[1] = NewView /*[VT_VARIANT:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Deactivate()
  {
    _TDispID _dispid(/* Deactivate */ DISPID(61446));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall SelectionChange()
  {
    _TDispID _dispid(/* SelectionChange */ DISPID(61447));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Close()
  {
    _TDispID _dispid(/* Close */ DISPID(61448));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMaximize */ DISPID(64017));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMinimize */ DISPID(64018));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeMove(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMove */ DISPID(64019));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeSize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeSize */ DISPID(64020));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  void __fastcall BeforeItemCopy(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeItemCopy */ DISPID(64014));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeItemCut(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeItemCut */ DISPID(64015));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeItemPaste(VARIANT* ClipboardContent/*[in]*/, 
                                  Outlook_xp::MAPIFolder* Target/*[in]*/, 
                                  VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeItemPaste */ DISPID(64016));
    TAutoArgs<3> _args;
    _args[1] = ClipboardContent /*[VT_VARIANT:1]*/;
    _args[2] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Target /*[VT_USERDEFINED:1]*/;
    _args[3] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: _Inspectors
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063008-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Inspectors  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Inspector** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(LPDISPATCH Item/*[in]*/, 
                                        Outlook_xp::_Inspector** Inspector/*[out,retval]*/) = 0; // [95]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Inspector* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Inspector* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Inspector**)&Item));
    return Item;
  }

  Outlook_xp::_Inspector* __fastcall Add(LPDISPATCH Item/*[in]*/)
  {
    Outlook_xp::_Inspector* Inspector = 0;
    OLECHECK(this->Add(Item, (Outlook_xp::_Inspector**)&Inspector));
    return Inspector;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: InspectorEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307D-0000-0000-C000-000000000046}
// *********************************************************************//
interface InspectorEvents : public TDispWrapper<IDispatch>
{
  void __fastcall Activate()
  {
    _TDispID _dispid(/* Activate */ DISPID(61441));
    OleProcedure(_dispid);
  }

  void __fastcall Deactivate()
  {
    _TDispID _dispid(/* Deactivate */ DISPID(61446));
    OleProcedure(_dispid);
  }

  void __fastcall Close()
  {
    _TDispID _dispid(/* Close */ DISPID(61448));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: InspectorEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302A-0000-0000-C000-000000000046}
// *********************************************************************//
interface InspectorEvents_10 : public TDispWrapper<IDispatch>
{
  HRESULT __fastcall Activate()
  {
    _TDispID _dispid(/* Activate */ DISPID(61441));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Deactivate()
  {
    _TDispID _dispid(/* Deactivate */ DISPID(61446));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Close()
  {
    _TDispID _dispid(/* Close */ DISPID(61448));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMaximize */ DISPID(64017));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMinimize */ DISPID(64018));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeMove(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeMove */ DISPID(64019));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeSize(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeSize */ DISPID(64020));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: Search
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300B-0000-0000-C000-000000000046}
// *********************************************************************//
interface Search  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Filter(BSTR* Filter/*[out,retval]*/) = 0; // [64100]
  virtual HRESULT STDMETHODCALLTYPE get_IsSynchronous(VARIANT_BOOL* IsSynchronous/*[out,retval]*/) = 0; // [64104]
  virtual HRESULT STDMETHODCALLTYPE get_Results(Outlook_xp::_Results** Results/*[out,retval]*/) = 0; // [64105]
  virtual HRESULT STDMETHODCALLTYPE get_SearchSubFolders(VARIANT_BOOL* SearchSubFolders/*[out,retval]*/) = 0; // [64102]
  virtual HRESULT STDMETHODCALLTYPE Stop(void) = 0; // [64103]
  virtual HRESULT STDMETHODCALLTYPE get_Tag(BSTR* Tag/*[out,retval]*/) = 0; // [64109]
  virtual HRESULT STDMETHODCALLTYPE get_Scope(BSTR* Scope/*[out,retval]*/) = 0; // [64165]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Filter(void)
  {
    BSTR Filter = 0;
    OLECHECK(this->get_Filter((BSTR*)&Filter));
    return Filter;
  }

  VARIANT_BOOL __fastcall get_IsSynchronous(void)
  {
    VARIANT_BOOL IsSynchronous;
    OLECHECK(this->get_IsSynchronous((VARIANT_BOOL*)&IsSynchronous));
    return IsSynchronous;
  }

  Outlook_xp::_ResultsPtr __fastcall get_Results(void)
  {
    Outlook_xp::_ResultsPtr Results;
    OLECHECK(this->get_Results(&Results));
    return Results;
  }

  VARIANT_BOOL __fastcall get_SearchSubFolders(void)
  {
    VARIANT_BOOL SearchSubFolders;
    OLECHECK(this->get_SearchSubFolders((VARIANT_BOOL*)&SearchSubFolders));
    return SearchSubFolders;
  }

  BSTR __fastcall get_Tag(void)
  {
    BSTR Tag = 0;
    OLECHECK(this->get_Tag((BSTR*)&Tag));
    return Tag;
  }

  BSTR __fastcall get_Scope(void)
  {
    BSTR Scope = 0;
    OLECHECK(this->get_Scope((BSTR*)&Scope));
    return Scope;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Filter = {read = get_Filter};
  __property   VARIANT_BOOL    IsSynchronous = {read = get_IsSynchronous};
  __property   Outlook_xp::_ResultsPtr Results = {read = get_Results};
  __property   VARIANT_BOOL    SearchSubFolders = {read = get_SearchSubFolders};
  __property   BSTR            Tag = {read = get_Tag};
  __property   BSTR            Scope = {read = get_Scope};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Results
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300C-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Results  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/) = 0; // [90]
  virtual HRESULT STDMETHODCALLTYPE GetFirst(LPDISPATCH* Item/*[out,retval]*/) = 0; // [86]
  virtual HRESULT STDMETHODCALLTYPE GetLast(LPDISPATCH* Item/*[out,retval]*/) = 0; // [88]
  virtual HRESULT STDMETHODCALLTYPE GetNext(LPDISPATCH* Item/*[out,retval]*/) = 0; // [87]
  virtual HRESULT STDMETHODCALLTYPE GetPrevious(LPDISPATCH* Item/*[out,retval]*/) = 0; // [89]
  virtual HRESULT STDMETHODCALLTYPE ResetColumns(void) = 0; // [93]
  virtual HRESULT STDMETHODCALLTYPE SetColumns(BSTR Columns/*[in]*/) = 0; // [92]
  virtual HRESULT STDMETHODCALLTYPE Sort(BSTR Property/*[in]*/, 
                                         VARIANT Descending/*[in,opt]*/= TNoParam()) = 0; // [97]
  virtual HRESULT STDMETHODCALLTYPE get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/) = 0; // [64143]
  virtual HRESULT STDMETHODCALLTYPE set_DefaultItemType(Outlook_xp::OlItemType DefaultItemType/*[in]*/) = 0; // [64143]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall get_RawTable(void)
  {
    LPUNKNOWN RawTable;
    OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
    return RawTable;
  }

  LPDISPATCH __fastcall GetFirst(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetFirst((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetLast(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetLast((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetNext(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetNext((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall GetPrevious(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->GetPrevious((LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::OlItemType __fastcall get_DefaultItemType(void)
  {
    Outlook_xp::OlItemType DefaultItemType;
    OLECHECK(this->get_DefaultItemType((Outlook_xp::OlItemType*)&DefaultItemType));
    return DefaultItemType;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   Outlook_xp::OlItemType DefaultItemType = {read = get_DefaultItemType, write = set_DefaultItemType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Reminders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B1-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Reminders  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::_Reminder** Item/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [82]
  virtual HRESULT STDMETHODCALLTYPE _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::_Reminder* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::_Reminder* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::_Reminder**)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall _NewEnum(void)
  {
    LPUNKNOWN ppvObject;
    OLECHECK(this->_NewEnum((LPUNKNOWN*)&ppvObject));
    return ppvObject;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _Reminder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B0-0000-0000-C000-000000000046}
// *********************************************************************//
interface _Reminder  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE Dismiss(void) = 0; // [64154]
  virtual HRESULT STDMETHODCALLTYPE Snooze(VARIANT SnoozeTime/*[in,opt]*/= TNoParam()) = 0; // [64155]
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* Caption/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_IsVisible(VARIANT_BOOL* IsVisible/*[out,retval]*/) = 0; // [64157]
  virtual HRESULT STDMETHODCALLTYPE get_Item(LPDISPATCH* Item/*[out,retval]*/) = 0; // [64158]
  virtual HRESULT STDMETHODCALLTYPE get_NextReminderDate(DATE* NextReminderDate/*[out,retval]*/) = 0; // [64159]
  virtual HRESULT STDMETHODCALLTYPE get_OriginalReminderDate(DATE* OriginalReminderDate/*[out,retval]*/) = 0; // [64160]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR Caption = 0;
    OLECHECK(this->get_Caption((BSTR*)&Caption));
    return Caption;
  }

  VARIANT_BOOL __fastcall get_IsVisible(void)
  {
    VARIANT_BOOL IsVisible;
    OLECHECK(this->get_IsVisible((VARIANT_BOOL*)&IsVisible));
    return IsVisible;
  }

  LPDISPATCH __fastcall get_Item(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->get_Item((LPDISPATCH*)&Item));
    return Item;
  }

  DATE __fastcall get_NextReminderDate(void)
  {
    DATE NextReminderDate;
    OLECHECK(this->get_NextReminderDate((DATE*)&NextReminderDate));
    return NextReminderDate;
  }

  DATE __fastcall get_OriginalReminderDate(void)
  {
    DATE OriginalReminderDate;
    OLECHECK(this->get_OriginalReminderDate((DATE*)&OriginalReminderDate));
    return OriginalReminderDate;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Caption = {read = get_Caption};
  __property   VARIANT_BOOL    IsVisible = {read = get_IsVisible};
  __property   LPDISPATCH      Item = {read = get_Item};
  __property   DATE            NextReminderDate = {read = get_NextReminderDate};
  __property   DATE            OriginalReminderDate = {read = get_OriginalReminderDate};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Actions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303E-0000-0000-C000-000000000046}
// *********************************************************************//
interface Actions  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Action** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(Outlook_xp::Action** Action/*[out,retval]*/) = 0; // [100]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [82]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Action* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Action* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Action**)&Item));
    return Item;
  }

  Outlook_xp::Action* __fastcall Add(void)
  {
    Outlook_xp::Action* Action = 0;
    OLECHECK(this->Add((Outlook_xp::Action**)&Action));
    return Action;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ApplicationEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304E-0000-0000-C000-000000000046}
// *********************************************************************//
interface ApplicationEvents : public TDispWrapper<IDispatch>
{
  void __fastcall ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* ItemSend */ DISPID(61442));
    TAutoArgs<2> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall NewMail()
  {
    _TDispID _dispid(/* NewMail */ DISPID(61443));
    OleProcedure(_dispid);
  }

  void __fastcall Reminder(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* Reminder */ DISPID(61444));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/)
  {
    _TDispID _dispid(/* OptionsPagesAdd */ DISPID(61445));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Startup()
  {
    _TDispID _dispid(/* Startup */ DISPID(61446));
    OleProcedure(_dispid);
  }

  void __fastcall Quit()
  {
    _TDispID _dispid(/* Quit */ DISPID(61447));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: PropertyPages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063080-0000-0000-C000-000000000046}
// *********************************************************************//
interface PropertyPages  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Page/*[in]*/, BSTR Title/*[in,opt]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _AppointmentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063033-0000-0000-C000-000000000046}
// *********************************************************************//
interface _AppointmentItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_AllDayEvent(VARIANT_BOOL* AllDayEvent/*[out,retval]*/) = 0; // [33301]
  virtual HRESULT STDMETHODCALLTYPE set_AllDayEvent(VARIANT_BOOL AllDayEvent/*[in]*/) = 0; // [33301]
  virtual HRESULT STDMETHODCALLTYPE get_BusyStatus(Outlook_xp::OlBusyStatus* BusyStatus/*[out,retval]*/) = 0; // [33285]
  virtual HRESULT STDMETHODCALLTYPE set_BusyStatus(Outlook_xp::OlBusyStatus BusyStatus/*[in]*/) = 0; // [33285]
  virtual HRESULT STDMETHODCALLTYPE get_Duration(long* Duration/*[out,retval]*/) = 0; // [33299]
  virtual HRESULT STDMETHODCALLTYPE set_Duration(long Duration/*[in]*/) = 0; // [33299]
  virtual HRESULT STDMETHODCALLTYPE get_End(DATE* End/*[out,retval]*/) = 0; // [33294]
  virtual HRESULT STDMETHODCALLTYPE set_End(DATE End/*[in]*/) = 0; // [33294]
  virtual HRESULT STDMETHODCALLTYPE get_IsOnlineMeeting(VARIANT_BOOL* IsOnlineMeeting/*[out,retval]*/) = 0; // [33344]
  virtual HRESULT STDMETHODCALLTYPE set_IsOnlineMeeting(VARIANT_BOOL IsOnlineMeeting/*[in]*/) = 0; // [33344]
  virtual HRESULT STDMETHODCALLTYPE get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/) = 0; // [33315]
  virtual HRESULT STDMETHODCALLTYPE get_Location(BSTR* Location/*[out,retval]*/) = 0; // [33288]
  virtual HRESULT STDMETHODCALLTYPE set_Location(BSTR Location/*[in]*/) = 0; // [33288]
  virtual HRESULT STDMETHODCALLTYPE get_MeetingStatus(Outlook_xp::OlMeetingStatus* MeetingStatus/*[out,retval]*/) = 0; // [33303]
  virtual HRESULT STDMETHODCALLTYPE set_MeetingStatus(Outlook_xp::OlMeetingStatus MeetingStatus/*[in]*/) = 0; // [33303]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingAutoStart(VARIANT_BOOL* NetMeetingAutoStart/*[out,retval]*/) = 0; // [33348]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingAutoStart(VARIANT_BOOL NetMeetingAutoStart/*[in]*/) = 0; // [33348]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingOrganizerAlias(BSTR* NetMeetingOrganizerAlias/*[out,retval]*/) = 0; // [33347]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingOrganizerAlias(BSTR NetMeetingOrganizerAlias/*[in]*/) = 0; // [33347]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/) = 0; // [33346]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/) = 0; // [33346]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingType(Outlook_xp::OlNetMeetingType* NetMeetingType/*[out,retval]*/) = 0; // [33345]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingType(Outlook_xp::OlNetMeetingType NetMeetingType/*[in]*/) = 0; // [33345]
  virtual HRESULT STDMETHODCALLTYPE get_OptionalAttendees(BSTR* OptionalAttendees/*[out,retval]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE set_OptionalAttendees(BSTR OptionalAttendees/*[in]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE get_Organizer(BSTR* Organizer/*[out,retval]*/) = 0; // [66]
  virtual HRESULT STDMETHODCALLTYPE get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/) = 0; // [63508]
  virtual HRESULT STDMETHODCALLTYPE get_RecurrenceState(Outlook_xp::OlRecurrenceState* RecurrenceState/*[out,retval]*/) = 0; // [62789]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderMinutesBeforeStart(long* ReminderMinutesBeforeStart/*[out,retval]*/) = 0; // [34049]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderMinutesBeforeStart(long ReminderMinutesBeforeStart/*[in]*/) = 0; // [34049]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE get_ReplyTime(DATE* ReplyTime/*[out,retval]*/) = 0; // [33312]
  virtual HRESULT STDMETHODCALLTYPE set_ReplyTime(DATE ReplyTime/*[in]*/) = 0; // [33312]
  virtual HRESULT STDMETHODCALLTYPE get_RequiredAttendees(BSTR* RequiredAttendees/*[out,retval]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE set_RequiredAttendees(BSTR RequiredAttendees/*[in]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE get_Resources(BSTR* Resources/*[out,retval]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE set_Resources(BSTR Resources/*[in]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE get_ResponseRequested(VARIANT_BOOL* ResponseRequested/*[out,retval]*/) = 0; // [99]
  virtual HRESULT STDMETHODCALLTYPE set_ResponseRequested(VARIANT_BOOL ResponseRequested/*[in]*/) = 0; // [99]
  virtual HRESULT STDMETHODCALLTYPE get_ResponseStatus(Outlook_xp::OlResponseStatus* ResponseStatus/*[out,retval]*/) = 0; // [33304]
  virtual HRESULT STDMETHODCALLTYPE get_Start(DATE* Start/*[out,retval]*/) = 0; // [33293]
  virtual HRESULT STDMETHODCALLTYPE set_Start(DATE Start/*[in]*/) = 0; // [33293]
  virtual HRESULT STDMETHODCALLTYPE ClearRecurrencePattern(void) = 0; // [61605]
  virtual HRESULT STDMETHODCALLTYPE ForwardAsVcal(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [62791]
  virtual HRESULT STDMETHODCALLTYPE GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/) = 0; // [61604]
  virtual HRESULT STDMETHODCALLTYPE Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                            VARIANT fNoUI/*[in,opt]*/, 
                                            VARIANT fAdditionalTextDialog/*[in,opt]*/, 
                                            Outlook_xp::MeetingItem** ResponseItem/*[out,retval]*/) = 0; // [62722]
  virtual HRESULT STDMETHODCALLTYPE Send(void) = 0; // [61557]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingDocPathName(BSTR* NetMeetingDocPathName/*[out,retval]*/) = 0; // [33351]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingDocPathName(BSTR NetMeetingDocPathName/*[in]*/) = 0; // [33351]
  virtual HRESULT STDMETHODCALLTYPE get_NetShowURL(BSTR* NetShowURL/*[out,retval]*/) = 0; // [33352]
  virtual HRESULT STDMETHODCALLTYPE set_NetShowURL(BSTR NetShowURL/*[in]*/) = 0; // [33352]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_ConferenceServerAllowExternal(VARIANT_BOOL* ConferenceServerAllowExternal/*[out,retval]*/) = 0; // [33350]
  virtual HRESULT STDMETHODCALLTYPE set_ConferenceServerAllowExternal(VARIANT_BOOL ConferenceServerAllowExternal/*[in]*/) = 0; // [33350]
  virtual HRESULT STDMETHODCALLTYPE get_ConferenceServerPassword(BSTR* ConferenceServerPassword/*[out,retval]*/) = 0; // [33353]
  virtual HRESULT STDMETHODCALLTYPE set_ConferenceServerPassword(BSTR ConferenceServerPassword/*[in]*/) = 0; // [33353]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_InternetCodepage(long* InternetCodepage/*[out,retval]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE set_InternetCodepage(long InternetCodepage/*[in]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  VARIANT_BOOL __fastcall get_AllDayEvent(void)
  {
    VARIANT_BOOL AllDayEvent;
    OLECHECK(this->get_AllDayEvent((VARIANT_BOOL*)&AllDayEvent));
    return AllDayEvent;
  }

  Outlook_xp::OlBusyStatus __fastcall get_BusyStatus(void)
  {
    Outlook_xp::OlBusyStatus BusyStatus;
    OLECHECK(this->get_BusyStatus((Outlook_xp::OlBusyStatus*)&BusyStatus));
    return BusyStatus;
  }

  long __fastcall get_Duration(void)
  {
    long Duration;
    OLECHECK(this->get_Duration((long*)&Duration));
    return Duration;
  }

  DATE __fastcall get_End(void)
  {
    DATE End;
    OLECHECK(this->get_End((DATE*)&End));
    return End;
  }

  VARIANT_BOOL __fastcall get_IsOnlineMeeting(void)
  {
    VARIANT_BOOL IsOnlineMeeting;
    OLECHECK(this->get_IsOnlineMeeting((VARIANT_BOOL*)&IsOnlineMeeting));
    return IsOnlineMeeting;
  }

  VARIANT_BOOL __fastcall get_IsRecurring(void)
  {
    VARIANT_BOOL IsRecurring;
    OLECHECK(this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring));
    return IsRecurring;
  }

  BSTR __fastcall get_Location(void)
  {
    BSTR Location = 0;
    OLECHECK(this->get_Location((BSTR*)&Location));
    return Location;
  }

  Outlook_xp::OlMeetingStatus __fastcall get_MeetingStatus(void)
  {
    Outlook_xp::OlMeetingStatus MeetingStatus;
    OLECHECK(this->get_MeetingStatus((Outlook_xp::OlMeetingStatus*)&MeetingStatus));
    return MeetingStatus;
  }

  VARIANT_BOOL __fastcall get_NetMeetingAutoStart(void)
  {
    VARIANT_BOOL NetMeetingAutoStart;
    OLECHECK(this->get_NetMeetingAutoStart((VARIANT_BOOL*)&NetMeetingAutoStart));
    return NetMeetingAutoStart;
  }

  BSTR __fastcall get_NetMeetingOrganizerAlias(void)
  {
    BSTR NetMeetingOrganizerAlias = 0;
    OLECHECK(this->get_NetMeetingOrganizerAlias((BSTR*)&NetMeetingOrganizerAlias));
    return NetMeetingOrganizerAlias;
  }

  BSTR __fastcall get_NetMeetingServer(void)
  {
    BSTR NetMeetingServer = 0;
    OLECHECK(this->get_NetMeetingServer((BSTR*)&NetMeetingServer));
    return NetMeetingServer;
  }

  Outlook_xp::OlNetMeetingType __fastcall get_NetMeetingType(void)
  {
    Outlook_xp::OlNetMeetingType NetMeetingType;
    OLECHECK(this->get_NetMeetingType((Outlook_xp::OlNetMeetingType*)&NetMeetingType));
    return NetMeetingType;
  }

  BSTR __fastcall get_OptionalAttendees(void)
  {
    BSTR OptionalAttendees = 0;
    OLECHECK(this->get_OptionalAttendees((BSTR*)&OptionalAttendees));
    return OptionalAttendees;
  }

  BSTR __fastcall get_Organizer(void)
  {
    BSTR Organizer = 0;
    OLECHECK(this->get_Organizer((BSTR*)&Organizer));
    return Organizer;
  }

  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void)
  {
    Outlook_xp::RecipientsPtr Recipients;
    OLECHECK(this->get_Recipients(&Recipients));
    return Recipients;
  }

  Outlook_xp::OlRecurrenceState __fastcall get_RecurrenceState(void)
  {
    Outlook_xp::OlRecurrenceState RecurrenceState;
    OLECHECK(this->get_RecurrenceState((Outlook_xp::OlRecurrenceState*)&RecurrenceState));
    return RecurrenceState;
  }

  long __fastcall get_ReminderMinutesBeforeStart(void)
  {
    long ReminderMinutesBeforeStart;
    OLECHECK(this->get_ReminderMinutesBeforeStart((long*)&ReminderMinutesBeforeStart));
    return ReminderMinutesBeforeStart;
  }

  VARIANT_BOOL __fastcall get_ReminderOverrideDefault(void)
  {
    VARIANT_BOOL ReminderOverrideDefault;
    OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
    return ReminderOverrideDefault;
  }

  VARIANT_BOOL __fastcall get_ReminderPlaySound(void)
  {
    VARIANT_BOOL ReminderPlaySound;
    OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
    return ReminderPlaySound;
  }

  VARIANT_BOOL __fastcall get_ReminderSet(void)
  {
    VARIANT_BOOL ReminderSet;
    OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
    return ReminderSet;
  }

  BSTR __fastcall get_ReminderSoundFile(void)
  {
    BSTR ReminderSoundFile = 0;
    OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
    return ReminderSoundFile;
  }

  DATE __fastcall get_ReplyTime(void)
  {
    DATE ReplyTime;
    OLECHECK(this->get_ReplyTime((DATE*)&ReplyTime));
    return ReplyTime;
  }

  BSTR __fastcall get_RequiredAttendees(void)
  {
    BSTR RequiredAttendees = 0;
    OLECHECK(this->get_RequiredAttendees((BSTR*)&RequiredAttendees));
    return RequiredAttendees;
  }

  BSTR __fastcall get_Resources(void)
  {
    BSTR Resources = 0;
    OLECHECK(this->get_Resources((BSTR*)&Resources));
    return Resources;
  }

  VARIANT_BOOL __fastcall get_ResponseRequested(void)
  {
    VARIANT_BOOL ResponseRequested;
    OLECHECK(this->get_ResponseRequested((VARIANT_BOOL*)&ResponseRequested));
    return ResponseRequested;
  }

  Outlook_xp::OlResponseStatus __fastcall get_ResponseStatus(void)
  {
    Outlook_xp::OlResponseStatus ResponseStatus;
    OLECHECK(this->get_ResponseStatus((Outlook_xp::OlResponseStatus*)&ResponseStatus));
    return ResponseStatus;
  }

  DATE __fastcall get_Start(void)
  {
    DATE Start;
    OLECHECK(this->get_Start((DATE*)&Start));
    return Start;
  }

  Outlook_xp::MailItem* __fastcall ForwardAsVcal(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->ForwardAsVcal((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void)
  {
    Outlook_xp::RecurrencePattern* RecurrencPattern = 0;
    OLECHECK(this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern));
    return RecurrencPattern;
  }

  Outlook_xp::MeetingItem* __fastcall Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                              VARIANT fNoUI/*[in,opt]*/= TNoParam(), 
                                              VARIANT fAdditionalTextDialog/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::MeetingItem* ResponseItem = 0;
    OLECHECK(this->Respond(Response, fNoUI, fAdditionalTextDialog, (Outlook_xp::MeetingItem**)&ResponseItem));
    return ResponseItem;
  }

  BSTR __fastcall get_NetMeetingDocPathName(void)
  {
    BSTR NetMeetingDocPathName = 0;
    OLECHECK(this->get_NetMeetingDocPathName((BSTR*)&NetMeetingDocPathName));
    return NetMeetingDocPathName;
  }

  BSTR __fastcall get_NetShowURL(void)
  {
    BSTR NetShowURL = 0;
    OLECHECK(this->get_NetShowURL((BSTR*)&NetShowURL));
    return NetShowURL;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  VARIANT_BOOL __fastcall get_ConferenceServerAllowExternal(void)
  {
    VARIANT_BOOL ConferenceServerAllowExternal;
    OLECHECK(this->get_ConferenceServerAllowExternal((VARIANT_BOOL*)&ConferenceServerAllowExternal));
    return ConferenceServerAllowExternal;
  }

  BSTR __fastcall get_ConferenceServerPassword(void)
  {
    BSTR ConferenceServerPassword = 0;
    OLECHECK(this->get_ConferenceServerPassword((BSTR*)&ConferenceServerPassword));
    return ConferenceServerPassword;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  long __fastcall get_InternetCodepage(void)
  {
    long InternetCodepage;
    OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
    return InternetCodepage;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AllDayEvent = {read = get_AllDayEvent, write = set_AllDayEvent};
  __property   Outlook_xp::OlBusyStatus BusyStatus = {read = get_BusyStatus, write = set_BusyStatus};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   VARIANT_BOOL    IsOnlineMeeting = {read = get_IsOnlineMeeting, write = set_IsOnlineMeeting};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   BSTR            Location = {read = get_Location, write = set_Location};
  __property   Outlook_xp::OlMeetingStatus MeetingStatus = {read = get_MeetingStatus, write = set_MeetingStatus};
  __property   VARIANT_BOOL    NetMeetingAutoStart = {read = get_NetMeetingAutoStart, write = set_NetMeetingAutoStart};
  __property   BSTR            NetMeetingOrganizerAlias = {read = get_NetMeetingOrganizerAlias, write = set_NetMeetingOrganizerAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   Outlook_xp::OlNetMeetingType NetMeetingType = {read = get_NetMeetingType, write = set_NetMeetingType};
  __property   BSTR            OptionalAttendees = {read = get_OptionalAttendees, write = set_OptionalAttendees};
  __property   BSTR            Organizer = {read = get_Organizer};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   Outlook_xp::OlRecurrenceState RecurrenceState = {read = get_RecurrenceState};
  __property   long            ReminderMinutesBeforeStart = {read = get_ReminderMinutesBeforeStart, write = set_ReminderMinutesBeforeStart};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReplyTime = {read = get_ReplyTime, write = set_ReplyTime};
  __property   BSTR            RequiredAttendees = {read = get_RequiredAttendees, write = set_RequiredAttendees};
  __property   BSTR            Resources = {read = get_Resources, write = set_Resources};
  __property   VARIANT_BOOL    ResponseRequested = {read = get_ResponseRequested, write = set_ResponseRequested};
  __property   Outlook_xp::OlResponseStatus ResponseStatus = {read = get_ResponseStatus};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   BSTR            NetMeetingDocPathName = {read = get_NetMeetingDocPathName, write = set_NetMeetingDocPathName};
  __property   BSTR            NetShowURL = {read = get_NetShowURL, write = set_NetShowURL};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   VARIANT_BOOL    ConferenceServerAllowExternal = {read = get_ConferenceServerAllowExternal, write = set_ConferenceServerAllowExternal};
  __property   BSTR            ConferenceServerPassword = {read = get_ConferenceServerPassword, write = set_ConferenceServerPassword};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Attachments
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303C-0000-0000-C000-000000000046}
// *********************************************************************//
interface Attachments  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Attachment** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Source/*[in]*/, VARIANT Type/*[in,opt]*/, 
                                        VARIANT Position/*[in,opt]*/, 
                                        VARIANT DisplayName/*[in,opt]*/, 
                                        Outlook_xp::Attachment** Attachment/*[out,retval]*/) = 0; // [101]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Attachment* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Attachment* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Attachment**)&Item));
    return Item;
  }

  Outlook_xp::Attachment* __fastcall Add(VARIANT Source/*[in]*/, 
                                         VARIANT Type/*[in,opt]*/= TNoParam(), 
                                         VARIANT Position/*[in,opt]*/= TNoParam(), 
                                         VARIANT DisplayName/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::Attachment* Attachment = 0;
    OLECHECK(this->Add(Source, Type, Position, DisplayName, (Outlook_xp::Attachment**)&Attachment));
    return Attachment;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Attachment
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063007-0000-0000-C000-000000000046}
// *********************************************************************//
interface Attachment  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_DisplayName(BSTR* DisplayName/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_DisplayName(BSTR DisplayName/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* FileName/*[out,retval]*/) = 0; // [14084]
  virtual HRESULT STDMETHODCALLTYPE get_Index(long* Index/*[out,retval]*/) = 0; // [91]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_PathName(BSTR* PathName/*[out,retval]*/) = 0; // [14088]
  virtual HRESULT STDMETHODCALLTYPE get_Position(long* Position/*[out,retval]*/) = 0; // [114]
  virtual HRESULT STDMETHODCALLTYPE set_Position(long Position/*[in]*/) = 0; // [114]
  virtual HRESULT STDMETHODCALLTYPE get_Type(Outlook_xp::OlAttachmentType* Type/*[out,retval]*/) = 0; // [14085]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE SaveAsFile(BSTR Path/*[in]*/) = 0; // [104]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_DisplayName(void)
  {
    BSTR DisplayName = 0;
    OLECHECK(this->get_DisplayName((BSTR*)&DisplayName));
    return DisplayName;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR FileName = 0;
    OLECHECK(this->get_FileName((BSTR*)&FileName));
    return FileName;
  }

  long __fastcall get_Index(void)
  {
    long Index;
    OLECHECK(this->get_Index((long*)&Index));
    return Index;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_PathName(void)
  {
    BSTR PathName = 0;
    OLECHECK(this->get_PathName((BSTR*)&PathName));
    return PathName;
  }

  long __fastcall get_Position(void)
  {
    long Position;
    OLECHECK(this->get_Position((long*)&Position));
    return Position;
  }

  Outlook_xp::OlAttachmentType __fastcall get_Type(void)
  {
    Outlook_xp::OlAttachmentType Type;
    OLECHECK(this->get_Type((Outlook_xp::OlAttachmentType*)&Type));
    return Type;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            DisplayName = {read = get_DisplayName, write = set_DisplayName};
  __property   BSTR            FileName = {read = get_FileName};
  __property   long            Index = {read = get_Index};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            PathName = {read = get_PathName};
  __property   long            Position = {read = get_Position, write = set_Position};
  __property   Outlook_xp::OlAttachmentType Type = {read = get_Type};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: FormDescription
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063046-0000-0000-C000-000000000046}
// *********************************************************************//
interface FormDescription  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Category(BSTR* Category/*[out,retval]*/) = 0; // [13060]
  virtual HRESULT STDMETHODCALLTYPE set_Category(BSTR Category/*[in]*/) = 0; // [13060]
  virtual HRESULT STDMETHODCALLTYPE get_CategorySub(BSTR* CategorySub/*[out,retval]*/) = 0; // [13061]
  virtual HRESULT STDMETHODCALLTYPE set_CategorySub(BSTR CategorySub/*[in]*/) = 0; // [13061]
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* Comment/*[out,retval]*/) = 0; // [12292]
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR Comment/*[in]*/) = 0; // [12292]
  virtual HRESULT STDMETHODCALLTYPE get_ContactName(BSTR* ContactName/*[out,retval]*/) = 0; // [13059]
  virtual HRESULT STDMETHODCALLTYPE set_ContactName(BSTR ContactName/*[in]*/) = 0; // [13059]
  virtual HRESULT STDMETHODCALLTYPE get_DisplayName(BSTR* DisplayName/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_DisplayName(BSTR DisplayName/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Hidden(VARIANT_BOOL* Hidden/*[out,retval]*/) = 0; // [13063]
  virtual HRESULT STDMETHODCALLTYPE set_Hidden(VARIANT_BOOL Hidden/*[in]*/) = 0; // [13063]
  virtual HRESULT STDMETHODCALLTYPE get_Icon(BSTR* Icon/*[out,retval]*/) = 0; // [4093]
  virtual HRESULT STDMETHODCALLTYPE set_Icon(BSTR Icon/*[in]*/) = 0; // [4093]
  virtual HRESULT STDMETHODCALLTYPE get_Locked(VARIANT_BOOL* Locked/*[out,retval]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE set_Locked(VARIANT_BOOL Locked/*[in]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_MiniIcon(BSTR* MiniIcon/*[out,retval]*/) = 0; // [4092]
  virtual HRESULT STDMETHODCALLTYPE set_MiniIcon(BSTR MiniIcon/*[in]*/) = 0; // [4092]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [61469]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [61469]
  virtual HRESULT STDMETHODCALLTYPE get_Number(BSTR* Number/*[out,retval]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE set_Number(BSTR Number/*[in]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE get_OneOff(VARIANT_BOOL* OneOff/*[out,retval]*/) = 0; // [101]
  virtual HRESULT STDMETHODCALLTYPE set_OneOff(VARIANT_BOOL OneOff/*[in]*/) = 0; // [101]
  virtual HRESULT STDMETHODCALLTYPE get_Password(BSTR* Password/*[out,retval]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE set_Password(BSTR Password/*[in]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE get_ScriptText(BSTR* ScriptText/*[out,retval]*/) = 0; // [109]
  virtual HRESULT STDMETHODCALLTYPE get_Template(BSTR* Template/*[out,retval]*/) = 0; // [106]
  virtual HRESULT STDMETHODCALLTYPE set_Template(BSTR Template/*[in]*/) = 0; // [106]
  virtual HRESULT STDMETHODCALLTYPE get_UseWordMail(VARIANT_BOOL* UseWordMail/*[out,retval]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE set_UseWordMail(VARIANT_BOOL UseWordMail/*[in]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE get_Version(BSTR* Version/*[out,retval]*/) = 0; // [13057]
  virtual HRESULT STDMETHODCALLTYPE set_Version(BSTR Version/*[in]*/) = 0; // [13057]
  virtual HRESULT STDMETHODCALLTYPE PublishForm(Outlook_xp::OlFormRegistry Registry/*[in]*/, 
                                                VARIANT Folder/*[in,opt]*/= TNoParam()) = 0; // [107]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Category(void)
  {
    BSTR Category = 0;
    OLECHECK(this->get_Category((BSTR*)&Category));
    return Category;
  }

  BSTR __fastcall get_CategorySub(void)
  {
    BSTR CategorySub = 0;
    OLECHECK(this->get_CategorySub((BSTR*)&CategorySub));
    return CategorySub;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR Comment = 0;
    OLECHECK(this->get_Comment((BSTR*)&Comment));
    return Comment;
  }

  BSTR __fastcall get_ContactName(void)
  {
    BSTR ContactName = 0;
    OLECHECK(this->get_ContactName((BSTR*)&ContactName));
    return ContactName;
  }

  BSTR __fastcall get_DisplayName(void)
  {
    BSTR DisplayName = 0;
    OLECHECK(this->get_DisplayName((BSTR*)&DisplayName));
    return DisplayName;
  }

  VARIANT_BOOL __fastcall get_Hidden(void)
  {
    VARIANT_BOOL Hidden;
    OLECHECK(this->get_Hidden((VARIANT_BOOL*)&Hidden));
    return Hidden;
  }

  BSTR __fastcall get_Icon(void)
  {
    BSTR Icon = 0;
    OLECHECK(this->get_Icon((BSTR*)&Icon));
    return Icon;
  }

  VARIANT_BOOL __fastcall get_Locked(void)
  {
    VARIANT_BOOL Locked;
    OLECHECK(this->get_Locked((VARIANT_BOOL*)&Locked));
    return Locked;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_MiniIcon(void)
  {
    BSTR MiniIcon = 0;
    OLECHECK(this->get_MiniIcon((BSTR*)&MiniIcon));
    return MiniIcon;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  BSTR __fastcall get_Number(void)
  {
    BSTR Number = 0;
    OLECHECK(this->get_Number((BSTR*)&Number));
    return Number;
  }

  VARIANT_BOOL __fastcall get_OneOff(void)
  {
    VARIANT_BOOL OneOff;
    OLECHECK(this->get_OneOff((VARIANT_BOOL*)&OneOff));
    return OneOff;
  }

  BSTR __fastcall get_Password(void)
  {
    BSTR Password = 0;
    OLECHECK(this->get_Password((BSTR*)&Password));
    return Password;
  }

  BSTR __fastcall get_ScriptText(void)
  {
    BSTR ScriptText = 0;
    OLECHECK(this->get_ScriptText((BSTR*)&ScriptText));
    return ScriptText;
  }

  BSTR __fastcall get_Template(void)
  {
    BSTR Template = 0;
    OLECHECK(this->get_Template((BSTR*)&Template));
    return Template;
  }

  VARIANT_BOOL __fastcall get_UseWordMail(void)
  {
    VARIANT_BOOL UseWordMail;
    OLECHECK(this->get_UseWordMail((VARIANT_BOOL*)&UseWordMail));
    return UseWordMail;
  }

  BSTR __fastcall get_Version(void)
  {
    BSTR Version = 0;
    OLECHECK(this->get_Version((BSTR*)&Version));
    return Version;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Category = {read = get_Category, write = set_Category};
  __property   BSTR            CategorySub = {read = get_CategorySub, write = set_CategorySub};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            ContactName = {read = get_ContactName, write = set_ContactName};
  __property   BSTR            DisplayName = {read = get_DisplayName, write = set_DisplayName};
  __property   VARIANT_BOOL    Hidden = {read = get_Hidden, write = set_Hidden};
  __property   BSTR            Icon = {read = get_Icon, write = set_Icon};
  __property   VARIANT_BOOL    Locked = {read = get_Locked, write = set_Locked};
  __property   BSTR            MessageClass = {read = get_MessageClass};
  __property   BSTR            MiniIcon = {read = get_MiniIcon, write = set_MiniIcon};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Number = {read = get_Number, write = set_Number};
  __property   VARIANT_BOOL    OneOff = {read = get_OneOff, write = set_OneOff};
  __property   BSTR            Password = {read = get_Password, write = set_Password};
  __property   BSTR            ScriptText = {read = get_ScriptText};
  __property   BSTR            Template = {read = get_Template, write = set_Template};
  __property   VARIANT_BOOL    UseWordMail = {read = get_UseWordMail, write = set_UseWordMail};
  __property   BSTR            Version = {read = get_Version, write = set_Version};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: UserProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303D-0000-0000-C000-000000000046}
// *********************************************************************//
interface UserProperties  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::UserProperty** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, 
                                        Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                        VARIANT AddToFolderFields/*[in,opt]*/, 
                                        VARIANT DisplayFormat/*[in,opt]*/, 
                                        Outlook_xp::UserProperty** UserProperty/*[out,retval]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE Find(BSTR Name/*[in]*/, VARIANT Custom/*[in,opt]*/, 
                                         Outlook_xp::UserProperty** UserProperty/*[out,retval]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [82]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::UserProperty* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::UserProperty* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::UserProperty**)&Item));
    return Item;
  }

  Outlook_xp::UserProperty* __fastcall Add(BSTR Name/*[in]*/, 
                                           Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                           VARIANT AddToFolderFields/*[in,opt]*/= TNoParam(), 
                                           VARIANT DisplayFormat/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::UserProperty* UserProperty = 0;
    OLECHECK(this->Add(Name, Type, AddToFolderFields, DisplayFormat, (Outlook_xp::UserProperty**)&UserProperty));
    return UserProperty;
  }

  Outlook_xp::UserProperty* __fastcall Find(BSTR Name/*[in]*/, 
                                            VARIANT Custom/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::UserProperty* UserProperty = 0;
    OLECHECK(this->Find(Name, Custom, (Outlook_xp::UserProperty**)&UserProperty));
    return UserProperty;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: UserProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063042-0000-0000-C000-000000000046}
// *********************************************************************//
interface UserProperty  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Formula(BSTR* Formula/*[out,retval]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE set_Formula(BSTR Formula/*[in]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/) = 0; // [109]
  virtual HRESULT STDMETHODCALLTYPE get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE set_ValidationFormula(BSTR ValidationFormula/*[in]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE get_ValidationText(BSTR* ValidationText/*[out,retval]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE set_ValidationText(BSTR ValidationText/*[in]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE get_Value(VARIANT* Value/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE set_Value(VARIANT Value/*[in]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [108]
  virtual HRESULT STDMETHODCALLTYPE get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/) = 0; // [64008]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Formula(void)
  {
    BSTR Formula = 0;
    OLECHECK(this->get_Formula((BSTR*)&Formula));
    return Formula;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  Outlook_xp::OlUserPropertyType __fastcall get_Type(void)
  {
    Outlook_xp::OlUserPropertyType Type;
    OLECHECK(this->get_Type((Outlook_xp::OlUserPropertyType*)&Type));
    return Type;
  }

  BSTR __fastcall get_ValidationFormula(void)
  {
    BSTR ValidationFormula = 0;
    OLECHECK(this->get_ValidationFormula((BSTR*)&ValidationFormula));
    return ValidationFormula;
  }

  BSTR __fastcall get_ValidationText(void)
  {
    BSTR ValidationText = 0;
    OLECHECK(this->get_ValidationText((BSTR*)&ValidationText));
    return ValidationText;
  }

  VARIANT __fastcall get_Value(void)
  {
    VARIANT Value;
    OLECHECK(this->get_Value((VARIANT*)&Value));
    return Value;
  }

  VARIANT_BOOL __fastcall get_IsUserProperty(void)
  {
    VARIANT_BOOL IsUserProperty;
    OLECHECK(this->get_IsUserProperty((VARIANT_BOOL*)&IsUserProperty));
    return IsUserProperty;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Formula = {read = get_Formula, write = set_Formula};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlUserPropertyType Type = {read = get_Type};
  __property   BSTR            ValidationFormula = {read = get_ValidationFormula, write = set_ValidationFormula};
  __property   BSTR            ValidationText = {read = get_ValidationText, write = set_ValidationText};
  __property   VARIANT_BOOL    IsUserProperty = {read = get_IsUserProperty};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Recipients
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303B-0000-0000-C000-000000000046}
// *********************************************************************//
interface Recipients  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Recipient** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, 
                                        Outlook_xp::Recipient** Recipient/*[out,retval]*/) = 0; // [111]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [84]
  virtual HRESULT STDMETHODCALLTYPE ResolveAll(VARIANT_BOOL* Success/*[out,retval]*/) = 0; // [126]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Recipient* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Recipient* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Recipient**)&Item));
    return Item;
  }

  Outlook_xp::Recipient* __fastcall Add(BSTR Name/*[in]*/)
  {
    Outlook_xp::Recipient* Recipient = 0;
    OLECHECK(this->Add(Name, (Outlook_xp::Recipient**)&Recipient));
    return Recipient;
  }

  VARIANT_BOOL __fastcall ResolveAll(void)
  {
    VARIANT_BOOL Success;
    OLECHECK(this->ResolveAll((VARIANT_BOOL*)&Success));
    return Success;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _MailItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063034-0000-0000-C000-000000000046}
// *********************************************************************//
interface _MailItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_AlternateRecipientAllowed(VARIANT_BOOL* AlternateRecipientAllowed/*[out,retval]*/) = 0; // [2]
  virtual HRESULT STDMETHODCALLTYPE set_AlternateRecipientAllowed(VARIANT_BOOL AlternateRecipientAllowed/*[in]*/) = 0; // [2]
  virtual HRESULT STDMETHODCALLTYPE get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE get_BCC(BSTR* BCC/*[out,retval]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE set_BCC(BSTR BCC/*[in]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE get_CC(BSTR* CC/*[out,retval]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE set_CC(BSTR CC/*[in]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/) = 0; // [15]
  virtual HRESULT STDMETHODCALLTYPE set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/) = 0; // [15]
  virtual HRESULT STDMETHODCALLTYPE get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/) = 0; // [3585]
  virtual HRESULT STDMETHODCALLTYPE set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/) = 0; // [3585]
  virtual HRESULT STDMETHODCALLTYPE get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE set_ExpiryTime(DATE ExpiryTime/*[in]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/) = 0; // [48]
  virtual HRESULT STDMETHODCALLTYPE set_FlagDueBy(DATE FlagDueBy/*[in]*/) = 0; // [48]
  virtual HRESULT STDMETHODCALLTYPE get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/) = 0; // [34096]
  virtual HRESULT STDMETHODCALLTYPE set_FlagRequest(BSTR FlagRequest/*[in]*/) = 0; // [34096]
  virtual HRESULT STDMETHODCALLTYPE get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/) = 0; // [4240]
  virtual HRESULT STDMETHODCALLTYPE set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/) = 0; // [4240]
  virtual HRESULT STDMETHODCALLTYPE get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/) = 0; // [62468]
  virtual HRESULT STDMETHODCALLTYPE set_HTMLBody(BSTR HTMLBody/*[in]*/) = 0; // [62468]
  virtual HRESULT STDMETHODCALLTYPE get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/) = 0; // [35]
  virtual HRESULT STDMETHODCALLTYPE set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/) = 0; // [35]
  virtual HRESULT STDMETHODCALLTYPE get_ReadReceiptRequested(VARIANT_BOOL* ReadReceiptRequested/*[out,retval]*/) = 0; // [41]
  virtual HRESULT STDMETHODCALLTYPE set_ReadReceiptRequested(VARIANT_BOOL ReadReceiptRequested/*[in]*/) = 0; // [41]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedByEntryID(BSTR* ReceivedByEntryID/*[out,retval]*/) = 0; // [63]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedByName(BSTR* ReceivedByName/*[out,retval]*/) = 0; // [64]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedOnBehalfOfEntryID(BSTR* ReceivedOnBehalfOfEntryID/*[out,retval]*/) = 0; // [67]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedOnBehalfOfName(BSTR* ReceivedOnBehalfOfName/*[out,retval]*/) = 0; // [68]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/) = 0; // [3590]
  virtual HRESULT STDMETHODCALLTYPE get_RecipientReassignmentProhibited(VARIANT_BOOL* RecipientReassignmentProhibited/*[out,retval]*/) = 0; // [43]
  virtual HRESULT STDMETHODCALLTYPE set_RecipientReassignmentProhibited(VARIANT_BOOL RecipientReassignmentProhibited/*[in]*/) = 0; // [43]
  virtual HRESULT STDMETHODCALLTYPE get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/) = 0; // [63508]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderTime(DATE* ReminderTime/*[out,retval]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderTime(DATE ReminderTime/*[in]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE get_RemoteStatus(Outlook_xp::OlRemoteStatus* RemoteStatus/*[out,retval]*/) = 0; // [34065]
  virtual HRESULT STDMETHODCALLTYPE set_RemoteStatus(Outlook_xp::OlRemoteStatus RemoteStatus/*[in]*/) = 0; // [34065]
  virtual HRESULT STDMETHODCALLTYPE get_ReplyRecipientNames(BSTR* ReplyRecipientNames/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/) = 0; // [61459]
  virtual HRESULT STDMETHODCALLTYPE get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/) = 0; // [62465]
  virtual HRESULT STDMETHODCALLTYPE _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/) = 0; // [62465]
  virtual HRESULT STDMETHODCALLTYPE get_SenderName(BSTR* SenderName/*[out,retval]*/) = 0; // [3098]
  virtual HRESULT STDMETHODCALLTYPE get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/) = 0; // [62466]
  virtual HRESULT STDMETHODCALLTYPE get_SentOn(DATE* SentOn/*[out,retval]*/) = 0; // [57]
  virtual HRESULT STDMETHODCALLTYPE get_SentOnBehalfOfName(BSTR* SentOnBehalfOfName/*[out,retval]*/) = 0; // [66]
  virtual HRESULT STDMETHODCALLTYPE set_SentOnBehalfOfName(BSTR SentOnBehalfOfName/*[in]*/) = 0; // [66]
  virtual HRESULT STDMETHODCALLTYPE get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/) = 0; // [62467]
  virtual HRESULT STDMETHODCALLTYPE get_To(BSTR* To/*[out,retval]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE set_To(BSTR To/*[in]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE get_VotingOptions(BSTR* VotingOptions/*[out,retval]*/) = 0; // [61467]
  virtual HRESULT STDMETHODCALLTYPE set_VotingOptions(BSTR VotingOptions/*[in]*/) = 0; // [61467]
  virtual HRESULT STDMETHODCALLTYPE get_VotingResponse(BSTR* VotingResponse/*[out,retval]*/) = 0; // [34084]
  virtual HRESULT STDMETHODCALLTYPE set_VotingResponse(BSTR VotingResponse/*[in]*/) = 0; // [34084]
  virtual HRESULT STDMETHODCALLTYPE ClearConversationIndex(void) = 0; // [63522]
  virtual HRESULT STDMETHODCALLTYPE Forward(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63507]
  virtual HRESULT STDMETHODCALLTYPE Reply(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63504]
  virtual HRESULT STDMETHODCALLTYPE ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63505]
  virtual HRESULT STDMETHODCALLTYPE Send(void) = 0; // [61557]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/) = 0; // [64073]
  virtual HRESULT STDMETHODCALLTYPE set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/) = 0; // [64073]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_InternetCodepage(long* InternetCodepage/*[out,retval]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE set_InternetCodepage(long InternetCodepage/*[in]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  VARIANT_BOOL __fastcall get_AlternateRecipientAllowed(void)
  {
    VARIANT_BOOL AlternateRecipientAllowed;
    OLECHECK(this->get_AlternateRecipientAllowed((VARIANT_BOOL*)&AlternateRecipientAllowed));
    return AlternateRecipientAllowed;
  }

  VARIANT_BOOL __fastcall get_AutoForwarded(void)
  {
    VARIANT_BOOL AutoForwarded;
    OLECHECK(this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded));
    return AutoForwarded;
  }

  BSTR __fastcall get_BCC(void)
  {
    BSTR BCC = 0;
    OLECHECK(this->get_BCC((BSTR*)&BCC));
    return BCC;
  }

  BSTR __fastcall get_CC(void)
  {
    BSTR CC = 0;
    OLECHECK(this->get_CC((BSTR*)&CC));
    return CC;
  }

  DATE __fastcall get_DeferredDeliveryTime(void)
  {
    DATE DeferredDeliveryTime;
    OLECHECK(this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime));
    return DeferredDeliveryTime;
  }

  VARIANT_BOOL __fastcall get_DeleteAfterSubmit(void)
  {
    VARIANT_BOOL DeleteAfterSubmit;
    OLECHECK(this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit));
    return DeleteAfterSubmit;
  }

  DATE __fastcall get_ExpiryTime(void)
  {
    DATE ExpiryTime;
    OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
    return ExpiryTime;
  }

  DATE __fastcall get_FlagDueBy(void)
  {
    DATE FlagDueBy;
    OLECHECK(this->get_FlagDueBy((DATE*)&FlagDueBy));
    return FlagDueBy;
  }

  BSTR __fastcall get_FlagRequest(void)
  {
    BSTR FlagRequest = 0;
    OLECHECK(this->get_FlagRequest((BSTR*)&FlagRequest));
    return FlagRequest;
  }

  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void)
  {
    Outlook_xp::OlFlagStatus FlagStatus;
    OLECHECK(this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus));
    return FlagStatus;
  }

  BSTR __fastcall get_HTMLBody(void)
  {
    BSTR HTMLBody = 0;
    OLECHECK(this->get_HTMLBody((BSTR*)&HTMLBody));
    return HTMLBody;
  }

  VARIANT_BOOL __fastcall get_OriginatorDeliveryReportRequested(void)
  {
    VARIANT_BOOL OriginatorDeliveryReportRequested;
    OLECHECK(this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested));
    return OriginatorDeliveryReportRequested;
  }

  VARIANT_BOOL __fastcall get_ReadReceiptRequested(void)
  {
    VARIANT_BOOL ReadReceiptRequested;
    OLECHECK(this->get_ReadReceiptRequested((VARIANT_BOOL*)&ReadReceiptRequested));
    return ReadReceiptRequested;
  }

  BSTR __fastcall get_ReceivedByEntryID(void)
  {
    BSTR ReceivedByEntryID = 0;
    OLECHECK(this->get_ReceivedByEntryID((BSTR*)&ReceivedByEntryID));
    return ReceivedByEntryID;
  }

  BSTR __fastcall get_ReceivedByName(void)
  {
    BSTR ReceivedByName = 0;
    OLECHECK(this->get_ReceivedByName((BSTR*)&ReceivedByName));
    return ReceivedByName;
  }

  BSTR __fastcall get_ReceivedOnBehalfOfEntryID(void)
  {
    BSTR ReceivedOnBehalfOfEntryID = 0;
    OLECHECK(this->get_ReceivedOnBehalfOfEntryID((BSTR*)&ReceivedOnBehalfOfEntryID));
    return ReceivedOnBehalfOfEntryID;
  }

  BSTR __fastcall get_ReceivedOnBehalfOfName(void)
  {
    BSTR ReceivedOnBehalfOfName = 0;
    OLECHECK(this->get_ReceivedOnBehalfOfName((BSTR*)&ReceivedOnBehalfOfName));
    return ReceivedOnBehalfOfName;
  }

  DATE __fastcall get_ReceivedTime(void)
  {
    DATE ReceivedTime;
    OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
    return ReceivedTime;
  }

  VARIANT_BOOL __fastcall get_RecipientReassignmentProhibited(void)
  {
    VARIANT_BOOL RecipientReassignmentProhibited;
    OLECHECK(this->get_RecipientReassignmentProhibited((VARIANT_BOOL*)&RecipientReassignmentProhibited));
    return RecipientReassignmentProhibited;
  }

  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void)
  {
    Outlook_xp::RecipientsPtr Recipients;
    OLECHECK(this->get_Recipients(&Recipients));
    return Recipients;
  }

  VARIANT_BOOL __fastcall get_ReminderOverrideDefault(void)
  {
    VARIANT_BOOL ReminderOverrideDefault;
    OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
    return ReminderOverrideDefault;
  }

  VARIANT_BOOL __fastcall get_ReminderPlaySound(void)
  {
    VARIANT_BOOL ReminderPlaySound;
    OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
    return ReminderPlaySound;
  }

  VARIANT_BOOL __fastcall get_ReminderSet(void)
  {
    VARIANT_BOOL ReminderSet;
    OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
    return ReminderSet;
  }

  BSTR __fastcall get_ReminderSoundFile(void)
  {
    BSTR ReminderSoundFile = 0;
    OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
    return ReminderSoundFile;
  }

  DATE __fastcall get_ReminderTime(void)
  {
    DATE ReminderTime;
    OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
    return ReminderTime;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_RemoteStatus(void)
  {
    Outlook_xp::OlRemoteStatus RemoteStatus;
    OLECHECK(this->get_RemoteStatus((Outlook_xp::OlRemoteStatus*)&RemoteStatus));
    return RemoteStatus;
  }

  BSTR __fastcall get_ReplyRecipientNames(void)
  {
    BSTR ReplyRecipientNames = 0;
    OLECHECK(this->get_ReplyRecipientNames((BSTR*)&ReplyRecipientNames));
    return ReplyRecipientNames;
  }

  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void)
  {
    Outlook_xp::RecipientsPtr ReplyRecipients;
    OLECHECK(this->get_ReplyRecipients(&ReplyRecipients));
    return ReplyRecipients;
  }

  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void)
  {
    Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
    OLECHECK(this->get_SaveSentMessageFolder(&SaveSentMessageFolder));
    return SaveSentMessageFolder;
  }

  BSTR __fastcall get_SenderName(void)
  {
    BSTR SenderName = 0;
    OLECHECK(this->get_SenderName((BSTR*)&SenderName));
    return SenderName;
  }

  VARIANT_BOOL __fastcall get_Sent(void)
  {
    VARIANT_BOOL Sent;
    OLECHECK(this->get_Sent((VARIANT_BOOL*)&Sent));
    return Sent;
  }

  DATE __fastcall get_SentOn(void)
  {
    DATE SentOn;
    OLECHECK(this->get_SentOn((DATE*)&SentOn));
    return SentOn;
  }

  BSTR __fastcall get_SentOnBehalfOfName(void)
  {
    BSTR SentOnBehalfOfName = 0;
    OLECHECK(this->get_SentOnBehalfOfName((BSTR*)&SentOnBehalfOfName));
    return SentOnBehalfOfName;
  }

  VARIANT_BOOL __fastcall get_Submitted(void)
  {
    VARIANT_BOOL Submitted;
    OLECHECK(this->get_Submitted((VARIANT_BOOL*)&Submitted));
    return Submitted;
  }

  BSTR __fastcall get_To(void)
  {
    BSTR To = 0;
    OLECHECK(this->get_To((BSTR*)&To));
    return To;
  }

  BSTR __fastcall get_VotingOptions(void)
  {
    BSTR VotingOptions = 0;
    OLECHECK(this->get_VotingOptions((BSTR*)&VotingOptions));
    return VotingOptions;
  }

  BSTR __fastcall get_VotingResponse(void)
  {
    BSTR VotingResponse = 0;
    OLECHECK(this->get_VotingResponse((BSTR*)&VotingResponse));
    return VotingResponse;
  }

  Outlook_xp::MailItem* __fastcall Forward(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall Reply(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall ReplyAll(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void)
  {
    Outlook_xp::OlBodyFormat BodyFormat;
    OLECHECK(this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat));
    return BodyFormat;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  long __fastcall get_InternetCodepage(void)
  {
    long InternetCodepage;
    OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
    return InternetCodepage;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AlternateRecipientAllowed = {read = get_AlternateRecipientAllowed, write = set_AlternateRecipientAllowed};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   BSTR            BCC = {read = get_BCC, write = set_BCC};
  __property   BSTR            CC = {read = get_CC, write = set_CC};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   VARIANT_BOOL    ReadReceiptRequested = {read = get_ReadReceiptRequested, write = set_ReadReceiptRequested};
  __property   BSTR            ReceivedByEntryID = {read = get_ReceivedByEntryID};
  __property   BSTR            ReceivedByName = {read = get_ReceivedByName};
  __property   BSTR            ReceivedOnBehalfOfEntryID = {read = get_ReceivedOnBehalfOfEntryID};
  __property   BSTR            ReceivedOnBehalfOfName = {read = get_ReceivedOnBehalfOfName};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   VARIANT_BOOL    RecipientReassignmentProhibited = {read = get_RecipientReassignmentProhibited, write = set_RecipientReassignmentProhibited};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::OlRemoteStatus RemoteStatus = {read = get_RemoteStatus, write = set_RemoteStatus};
  __property   BSTR            ReplyRecipientNames = {read = get_ReplyRecipientNames};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   BSTR            SentOnBehalfOfName = {read = get_SentOnBehalfOfName, write = set_SentOnBehalfOfName};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   BSTR            To = {read = get_To, write = set_To};
  __property   BSTR            VotingOptions = {read = get_VotingOptions, write = set_VotingOptions};
  __property   BSTR            VotingResponse = {read = get_VotingResponse, write = set_VotingResponse};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ItemEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006303A-0000-0000-C000-000000000046}
// *********************************************************************//
interface ItemEvents : public TDispWrapper<IDispatch>
{
  void __fastcall Open(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Open */ DISPID(61443));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                               VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* CustomAction */ DISPID(61446));
    TAutoArgs<3> _args;
    _args[1] = Action /*[VT_DISPATCH:0]*/;
    _args[2] = Response /*[VT_DISPATCH:0]*/;
    _args[3] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall CustomPropertyChange(BSTR Name/*[in]*/)
  {
    _TDispID _dispid(/* CustomPropertyChange */ DISPID(61448));
    TAutoArgs<1> _args;
    _args[1] = Name /*[VT_BSTR:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Forward */ DISPID(62568));
    TAutoArgs<2> _args;
    _args[1] = Forward /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Close(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Close */ DISPID(61444));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall PropertyChange(BSTR Name/*[in]*/)
  {
    _TDispID _dispid(/* PropertyChange */ DISPID(61449));
    TAutoArgs<1> _args;
    _args[1] = Name /*[VT_BSTR:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Read()
  {
    _TDispID _dispid(/* Read */ DISPID(61441));
    OleProcedure(_dispid);
  }

  void __fastcall Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Reply */ DISPID(62566));
    TAutoArgs<2> _args;
    _args[1] = Response /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* ReplyAll */ DISPID(62567));
    TAutoArgs<2> _args;
    _args[1] = Response /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Send(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Send */ DISPID(61445));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall Write(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Write */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeCheckNames */ DISPID(61450));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/)
  {
    _TDispID _dispid(/* AttachmentAdd */ DISPID(61451));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/)
  {
    _TDispID _dispid(/* AttachmentRead */ DISPID(61452));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                       VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeAttachmentSave */ DISPID(61453));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: Links
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308A-0000-0000-C000-000000000046}
// *********************************************************************//
interface Links  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Link** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(LPDISPATCH Item/*[in]*/, 
                                        Outlook_xp::Link** Link/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Link* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Link* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Link**)&Item));
    return Item;
  }

  Outlook_xp::Link* __fastcall Add(LPDISPATCH Item/*[in]*/)
  {
    Outlook_xp::Link* Link = 0;
    OLECHECK(this->Add(Item, (Outlook_xp::Link**)&Link));
    return Link;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Link
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063089-0000-0000-C000-000000000046}
// *********************************************************************//
interface Link  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [109]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_Type(Outlook_xp::OlObjectClass* Type/*[out,retval]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE get_Item(LPDISPATCH* Item/*[out,retval]*/) = 0; // [8450]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  Outlook_xp::OlObjectClass __fastcall get_Type(void)
  {
    Outlook_xp::OlObjectClass Type;
    OLECHECK(this->get_Type((Outlook_xp::OlObjectClass*)&Type));
    return Type;
  }

  LPDISPATCH __fastcall get_Item(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->get_Item((LPDISPATCH*)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlObjectClass Type = {read = get_Type};
  __property   LPDISPATCH      Item = {read = get_Item};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ItemProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A8-0000-0000-C000-000000000046}
// *********************************************************************//
interface ItemProperties  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::ItemProperty** Item/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/) = 0; // [-4]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, 
                                        Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                        VARIANT AddToFolderFields/*[in,opt]*/, 
                                        VARIANT DisplayFormat/*[in,opt]*/, 
                                        Outlook_xp::ItemProperty** ItemProperty/*[out,retval]*/) = 0; // [102]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [82]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::ItemProperty* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::ItemProperty* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::ItemProperty**)&Item));
    return Item;
  }

  LPUNKNOWN __fastcall _NewEnum(void)
  {
    LPUNKNOWN ppvObject;
    OLECHECK(this->_NewEnum((LPUNKNOWN*)&ppvObject));
    return ppvObject;
  }

  Outlook_xp::ItemProperty* __fastcall Add(BSTR Name/*[in]*/, 
                                           Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                           VARIANT AddToFolderFields/*[in,opt]*/= TNoParam(), 
                                           VARIANT DisplayFormat/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::ItemProperty* ItemProperty = 0;
    OLECHECK(this->Add(Name, Type, AddToFolderFields, DisplayFormat, (Outlook_xp::ItemProperty**)&ItemProperty));
    return ItemProperty;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ItemProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A7-0000-0000-C000-000000000046}
// *********************************************************************//
interface ItemProperty  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Formula(BSTR* Formula/*[out,retval]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE set_Formula(BSTR Formula/*[in]*/) = 0; // [103]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/) = 0; // [109]
  virtual HRESULT STDMETHODCALLTYPE get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE set_ValidationFormula(BSTR ValidationFormula/*[in]*/) = 0; // [104]
  virtual HRESULT STDMETHODCALLTYPE get_ValidationText(BSTR* ValidationText/*[out,retval]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE set_ValidationText(BSTR ValidationText/*[in]*/) = 0; // [105]
  virtual HRESULT STDMETHODCALLTYPE get_Value(VARIANT* Value/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE set_Value(VARIANT Value/*[in]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [108]
  virtual HRESULT STDMETHODCALLTYPE get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/) = 0; // [64008]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Formula(void)
  {
    BSTR Formula = 0;
    OLECHECK(this->get_Formula((BSTR*)&Formula));
    return Formula;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  Outlook_xp::OlUserPropertyType __fastcall get_Type(void)
  {
    Outlook_xp::OlUserPropertyType Type;
    OLECHECK(this->get_Type((Outlook_xp::OlUserPropertyType*)&Type));
    return Type;
  }

  BSTR __fastcall get_ValidationFormula(void)
  {
    BSTR ValidationFormula = 0;
    OLECHECK(this->get_ValidationFormula((BSTR*)&ValidationFormula));
    return ValidationFormula;
  }

  BSTR __fastcall get_ValidationText(void)
  {
    BSTR ValidationText = 0;
    OLECHECK(this->get_ValidationText((BSTR*)&ValidationText));
    return ValidationText;
  }

  VARIANT __fastcall get_Value(void)
  {
    VARIANT Value;
    OLECHECK(this->get_Value((VARIANT*)&Value));
    return Value;
  }

  VARIANT_BOOL __fastcall get_IsUserProperty(void)
  {
    VARIANT_BOOL IsUserProperty;
    OLECHECK(this->get_IsUserProperty((VARIANT_BOOL*)&IsUserProperty));
    return IsUserProperty;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Formula = {read = get_Formula, write = set_Formula};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlUserPropertyType Type = {read = get_Type};
  __property   BSTR            ValidationFormula = {read = get_ValidationFormula, write = set_ValidationFormula};
  __property   BSTR            ValidationText = {read = get_ValidationText, write = set_ValidationText};
  __property   VARIANT_BOOL    IsUserProperty = {read = get_IsUserProperty};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ItemEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302B-0000-0000-C000-000000000046}
// *********************************************************************//
interface ItemEvents_10 : public TDispWrapper<IDispatch>
{
  HRESULT __fastcall Open(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Open */ DISPID(61443));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                                  VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* CustomAction */ DISPID(61446));
    TAutoArgs<3> _args;
    _args[1] = Action /*[VT_DISPATCH:0]*/;
    _args[2] = Response /*[VT_DISPATCH:0]*/;
    _args[3] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall CustomPropertyChange(BSTR Name/*[in]*/)
  {
    _TDispID _dispid(/* CustomPropertyChange */ DISPID(61448));
    TAutoArgs<1> _args;
    _args[1] = Name /*[VT_BSTR:0]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Forward */ DISPID(62568));
    TAutoArgs<2> _args;
    _args[1] = Forward /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Close(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Close */ DISPID(61444));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall PropertyChange(BSTR Name/*[in]*/)
  {
    _TDispID _dispid(/* PropertyChange */ DISPID(61449));
    TAutoArgs<1> _args;
    _args[1] = Name /*[VT_BSTR:0]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Read()
  {
    _TDispID _dispid(/* Read */ DISPID(61441));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Reply */ DISPID(62566));
    TAutoArgs<2> _args;
    _args[1] = Response /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* ReplyAll */ DISPID(62567));
    TAutoArgs<2> _args;
    _args[1] = Response /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Send(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Send */ DISPID(61445));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Write(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* Write */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeCheckNames */ DISPID(61450));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/)
  {
    _TDispID _dispid(/* AttachmentAdd */ DISPID(61451));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/)
  {
    _TDispID _dispid(/* AttachmentRead */ DISPID(61452));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                          VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeAttachmentSave */ DISPID(61453));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  void __fastcall BeforeDelete(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeDelete */ DISPID(64117));
    TAutoArgs<2> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: RecurrencePattern
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063044-0000-0000-C000-000000000046}
// *********************************************************************//
interface RecurrencePattern  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_DayOfMonth(long* DayOfMonth/*[out,retval]*/) = 0; // [4096]
  virtual HRESULT STDMETHODCALLTYPE set_DayOfMonth(long DayOfMonth/*[in]*/) = 0; // [4096]
  virtual HRESULT STDMETHODCALLTYPE get_DayOfWeekMask(Outlook_xp::OlDaysOfWeek* DayOfWeekMask/*[out,retval]*/) = 0; // [4097]
  virtual HRESULT STDMETHODCALLTYPE set_DayOfWeekMask(Outlook_xp::OlDaysOfWeek DayOfWeekMask/*[in]*/) = 0; // [4097]
  virtual HRESULT STDMETHODCALLTYPE get_Duration(long* Duration/*[out,retval]*/) = 0; // [4109]
  virtual HRESULT STDMETHODCALLTYPE set_Duration(long Duration/*[in]*/) = 0; // [4109]
  virtual HRESULT STDMETHODCALLTYPE get_EndTime(DATE* EndTime/*[out,retval]*/) = 0; // [4108]
  virtual HRESULT STDMETHODCALLTYPE set_EndTime(DATE EndTime/*[in]*/) = 0; // [4108]
  virtual HRESULT STDMETHODCALLTYPE get_Exceptions(Outlook_xp::Exceptions** Exceptions/*[out,retval]*/) = 0; // [4110]
  virtual HRESULT STDMETHODCALLTYPE get_Instance(long* Instance/*[out,retval]*/) = 0; // [4099]
  virtual HRESULT STDMETHODCALLTYPE set_Instance(long Instance/*[in]*/) = 0; // [4099]
  virtual HRESULT STDMETHODCALLTYPE get_Interval(long* Interval/*[out,retval]*/) = 0; // [4100]
  virtual HRESULT STDMETHODCALLTYPE set_Interval(long Interval/*[in]*/) = 0; // [4100]
  virtual HRESULT STDMETHODCALLTYPE get_MonthOfYear(long* MonthOfYear/*[out,retval]*/) = 0; // [4102]
  virtual HRESULT STDMETHODCALLTYPE set_MonthOfYear(long MonthOfYear/*[in]*/) = 0; // [4102]
  virtual HRESULT STDMETHODCALLTYPE get_NoEndDate(VARIANT_BOOL* NoEndDate/*[out,retval]*/) = 0; // [4107]
  virtual HRESULT STDMETHODCALLTYPE set_NoEndDate(VARIANT_BOOL NoEndDate/*[in]*/) = 0; // [4107]
  virtual HRESULT STDMETHODCALLTYPE get_Occurrences(long* Occurrences/*[out,retval]*/) = 0; // [4101]
  virtual HRESULT STDMETHODCALLTYPE set_Occurrences(long Occurrences/*[in]*/) = 0; // [4101]
  virtual HRESULT STDMETHODCALLTYPE get_PatternEndDate(DATE* PatternEndDate/*[out,retval]*/) = 0; // [4098]
  virtual HRESULT STDMETHODCALLTYPE set_PatternEndDate(DATE PatternEndDate/*[in]*/) = 0; // [4098]
  virtual HRESULT STDMETHODCALLTYPE get_PatternStartDate(DATE* PatternStartDate/*[out,retval]*/) = 0; // [4104]
  virtual HRESULT STDMETHODCALLTYPE set_PatternStartDate(DATE PatternStartDate/*[in]*/) = 0; // [4104]
  virtual HRESULT STDMETHODCALLTYPE get_RecurrenceType(Outlook_xp::OlRecurrenceType* RecurrenceType/*[out,retval]*/) = 0; // [4103]
  virtual HRESULT STDMETHODCALLTYPE set_RecurrenceType(Outlook_xp::OlRecurrenceType RecurrenceType/*[in]*/) = 0; // [4103]
  virtual HRESULT STDMETHODCALLTYPE get_Regenerate(VARIANT_BOOL* Regenerate/*[out,retval]*/) = 0; // [4106]
  virtual HRESULT STDMETHODCALLTYPE set_Regenerate(VARIANT_BOOL Regenerate/*[in]*/) = 0; // [4106]
  virtual HRESULT STDMETHODCALLTYPE get_StartTime(DATE* StartTime/*[out,retval]*/) = 0; // [4105]
  virtual HRESULT STDMETHODCALLTYPE set_StartTime(DATE StartTime/*[in]*/) = 0; // [4105]
  virtual HRESULT STDMETHODCALLTYPE GetOccurrence(DATE StartDate/*[in]*/, 
                                                  Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/) = 0; // [4111]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_DayOfMonth(void)
  {
    long DayOfMonth;
    OLECHECK(this->get_DayOfMonth((long*)&DayOfMonth));
    return DayOfMonth;
  }

  Outlook_xp::OlDaysOfWeek __fastcall get_DayOfWeekMask(void)
  {
    Outlook_xp::OlDaysOfWeek DayOfWeekMask;
    OLECHECK(this->get_DayOfWeekMask((Outlook_xp::OlDaysOfWeek*)&DayOfWeekMask));
    return DayOfWeekMask;
  }

  long __fastcall get_Duration(void)
  {
    long Duration;
    OLECHECK(this->get_Duration((long*)&Duration));
    return Duration;
  }

  DATE __fastcall get_EndTime(void)
  {
    DATE EndTime;
    OLECHECK(this->get_EndTime((DATE*)&EndTime));
    return EndTime;
  }

  Outlook_xp::ExceptionsPtr __fastcall get_Exceptions(void)
  {
    Outlook_xp::ExceptionsPtr Exceptions;
    OLECHECK(this->get_Exceptions(&Exceptions));
    return Exceptions;
  }

  long __fastcall get_Instance(void)
  {
    long Instance;
    OLECHECK(this->get_Instance((long*)&Instance));
    return Instance;
  }

  long __fastcall get_Interval(void)
  {
    long Interval;
    OLECHECK(this->get_Interval((long*)&Interval));
    return Interval;
  }

  long __fastcall get_MonthOfYear(void)
  {
    long MonthOfYear;
    OLECHECK(this->get_MonthOfYear((long*)&MonthOfYear));
    return MonthOfYear;
  }

  VARIANT_BOOL __fastcall get_NoEndDate(void)
  {
    VARIANT_BOOL NoEndDate;
    OLECHECK(this->get_NoEndDate((VARIANT_BOOL*)&NoEndDate));
    return NoEndDate;
  }

  long __fastcall get_Occurrences(void)
  {
    long Occurrences;
    OLECHECK(this->get_Occurrences((long*)&Occurrences));
    return Occurrences;
  }

  DATE __fastcall get_PatternEndDate(void)
  {
    DATE PatternEndDate;
    OLECHECK(this->get_PatternEndDate((DATE*)&PatternEndDate));
    return PatternEndDate;
  }

  DATE __fastcall get_PatternStartDate(void)
  {
    DATE PatternStartDate;
    OLECHECK(this->get_PatternStartDate((DATE*)&PatternStartDate));
    return PatternStartDate;
  }

  Outlook_xp::OlRecurrenceType __fastcall get_RecurrenceType(void)
  {
    Outlook_xp::OlRecurrenceType RecurrenceType;
    OLECHECK(this->get_RecurrenceType((Outlook_xp::OlRecurrenceType*)&RecurrenceType));
    return RecurrenceType;
  }

  VARIANT_BOOL __fastcall get_Regenerate(void)
  {
    VARIANT_BOOL Regenerate;
    OLECHECK(this->get_Regenerate((VARIANT_BOOL*)&Regenerate));
    return Regenerate;
  }

  DATE __fastcall get_StartTime(void)
  {
    DATE StartTime;
    OLECHECK(this->get_StartTime((DATE*)&StartTime));
    return StartTime;
  }

  Outlook_xp::AppointmentItem* __fastcall GetOccurrence(DATE StartDate/*[in]*/)
  {
    Outlook_xp::AppointmentItem* AppointmentItem = 0;
    OLECHECK(this->GetOccurrence(StartDate, (Outlook_xp::AppointmentItem**)&AppointmentItem));
    return AppointmentItem;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            DayOfMonth = {read = get_DayOfMonth, write = set_DayOfMonth};
  __property   Outlook_xp::OlDaysOfWeek DayOfWeekMask = {read = get_DayOfWeekMask, write = set_DayOfWeekMask};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            EndTime = {read = get_EndTime, write = set_EndTime};
  __property   Outlook_xp::ExceptionsPtr Exceptions = {read = get_Exceptions};
  __property   long            Instance = {read = get_Instance, write = set_Instance};
  __property   long            Interval = {read = get_Interval, write = set_Interval};
  __property   long            MonthOfYear = {read = get_MonthOfYear, write = set_MonthOfYear};
  __property   VARIANT_BOOL    NoEndDate = {read = get_NoEndDate, write = set_NoEndDate};
  __property   long            Occurrences = {read = get_Occurrences, write = set_Occurrences};
  __property   DATE            PatternEndDate = {read = get_PatternEndDate, write = set_PatternEndDate};
  __property   DATE            PatternStartDate = {read = get_PatternStartDate, write = set_PatternStartDate};
  __property   Outlook_xp::OlRecurrenceType RecurrenceType = {read = get_RecurrenceType, write = set_RecurrenceType};
  __property   VARIANT_BOOL    Regenerate = {read = get_Regenerate, write = set_Regenerate};
  __property   DATE            StartTime = {read = get_StartTime, write = set_StartTime};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Exceptions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304C-0000-0000-C000-000000000046}
// *********************************************************************//
interface Exceptions  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::Exception** Item/*[out,retval]*/) = 0; // [81]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::Exception* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::Exception* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::Exception**)&Item));
    return Item;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Exception
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304D-0000-0000-C000-000000000046}
// *********************************************************************//
interface Exception  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_AppointmentItem(Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/) = 0; // [8193]
  virtual HRESULT STDMETHODCALLTYPE get_Deleted(VARIANT_BOOL* Deleted/*[out,retval]*/) = 0; // [8194]
  virtual HRESULT STDMETHODCALLTYPE get_OriginalDate(DATE* OriginalDate/*[out,retval]*/) = 0; // [8192]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::AppointmentItemPtr __fastcall get_AppointmentItem(void)
  {
    Outlook_xp::AppointmentItemPtr AppointmentItem;
    OLECHECK(this->get_AppointmentItem(&AppointmentItem));
    return AppointmentItem;
  }

  VARIANT_BOOL __fastcall get_Deleted(void)
  {
    VARIANT_BOOL Deleted;
    OLECHECK(this->get_Deleted((VARIANT_BOOL*)&Deleted));
    return Deleted;
  }

  DATE __fastcall get_OriginalDate(void)
  {
    DATE OriginalDate;
    OLECHECK(this->get_OriginalDate((DATE*)&OriginalDate));
    return OriginalDate;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::AppointmentItemPtr AppointmentItem = {read = get_AppointmentItem};
  __property   VARIANT_BOOL    Deleted = {read = get_Deleted};
  __property   DATE            OriginalDate = {read = get_OriginalDate};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _MeetingItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063062-0000-0000-C000-000000000046}
// *********************************************************************//
interface _MeetingItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/) = 0; // [15]
  virtual HRESULT STDMETHODCALLTYPE set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/) = 0; // [15]
  virtual HRESULT STDMETHODCALLTYPE get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/) = 0; // [3585]
  virtual HRESULT STDMETHODCALLTYPE set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/) = 0; // [3585]
  virtual HRESULT STDMETHODCALLTYPE get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE set_ExpiryTime(DATE ExpiryTime/*[in]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/) = 0; // [48]
  virtual HRESULT STDMETHODCALLTYPE set_FlagDueBy(DATE FlagDueBy/*[in]*/) = 0; // [48]
  virtual HRESULT STDMETHODCALLTYPE get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/) = 0; // [34096]
  virtual HRESULT STDMETHODCALLTYPE set_FlagRequest(BSTR FlagRequest/*[in]*/) = 0; // [34096]
  virtual HRESULT STDMETHODCALLTYPE get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/) = 0; // [4240]
  virtual HRESULT STDMETHODCALLTYPE set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/) = 0; // [4240]
  virtual HRESULT STDMETHODCALLTYPE get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/) = 0; // [35]
  virtual HRESULT STDMETHODCALLTYPE set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/) = 0; // [35]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/) = 0; // [3590]
  virtual HRESULT STDMETHODCALLTYPE set_ReceivedTime(DATE ReceivedTime/*[in]*/) = 0; // [3590]
  virtual HRESULT STDMETHODCALLTYPE get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/) = 0; // [63508]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderTime(DATE* ReminderTime/*[out,retval]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderTime(DATE ReminderTime/*[in]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/) = 0; // [61459]
  virtual HRESULT STDMETHODCALLTYPE get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/) = 0; // [62465]
  virtual HRESULT STDMETHODCALLTYPE _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/) = 0; // [62465]
  virtual HRESULT STDMETHODCALLTYPE get_SenderName(BSTR* SenderName/*[out,retval]*/) = 0; // [3098]
  virtual HRESULT STDMETHODCALLTYPE get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/) = 0; // [62466]
  virtual HRESULT STDMETHODCALLTYPE get_SentOn(DATE* SentOn/*[out,retval]*/) = 0; // [57]
  virtual HRESULT STDMETHODCALLTYPE get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/) = 0; // [62467]
  virtual HRESULT STDMETHODCALLTYPE Forward(Outlook_xp::MeetingItem** Item/*[out,retval]*/) = 0; // [63507]
  virtual HRESULT STDMETHODCALLTYPE GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/, 
                                                             Outlook_xp::AppointmentItem** Item/*[out,retval]*/) = 0; // [63328]
  virtual HRESULT STDMETHODCALLTYPE Reply(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63504]
  virtual HRESULT STDMETHODCALLTYPE ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63505]
  virtual HRESULT STDMETHODCALLTYPE Send(void) = 0; // [61557]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  VARIANT_BOOL __fastcall get_AutoForwarded(void)
  {
    VARIANT_BOOL AutoForwarded;
    OLECHECK(this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded));
    return AutoForwarded;
  }

  DATE __fastcall get_DeferredDeliveryTime(void)
  {
    DATE DeferredDeliveryTime;
    OLECHECK(this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime));
    return DeferredDeliveryTime;
  }

  VARIANT_BOOL __fastcall get_DeleteAfterSubmit(void)
  {
    VARIANT_BOOL DeleteAfterSubmit;
    OLECHECK(this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit));
    return DeleteAfterSubmit;
  }

  DATE __fastcall get_ExpiryTime(void)
  {
    DATE ExpiryTime;
    OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
    return ExpiryTime;
  }

  DATE __fastcall get_FlagDueBy(void)
  {
    DATE FlagDueBy;
    OLECHECK(this->get_FlagDueBy((DATE*)&FlagDueBy));
    return FlagDueBy;
  }

  BSTR __fastcall get_FlagRequest(void)
  {
    BSTR FlagRequest = 0;
    OLECHECK(this->get_FlagRequest((BSTR*)&FlagRequest));
    return FlagRequest;
  }

  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void)
  {
    Outlook_xp::OlFlagStatus FlagStatus;
    OLECHECK(this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus));
    return FlagStatus;
  }

  VARIANT_BOOL __fastcall get_OriginatorDeliveryReportRequested(void)
  {
    VARIANT_BOOL OriginatorDeliveryReportRequested;
    OLECHECK(this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested));
    return OriginatorDeliveryReportRequested;
  }

  DATE __fastcall get_ReceivedTime(void)
  {
    DATE ReceivedTime;
    OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
    return ReceivedTime;
  }

  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void)
  {
    Outlook_xp::RecipientsPtr Recipients;
    OLECHECK(this->get_Recipients(&Recipients));
    return Recipients;
  }

  VARIANT_BOOL __fastcall get_ReminderSet(void)
  {
    VARIANT_BOOL ReminderSet;
    OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
    return ReminderSet;
  }

  DATE __fastcall get_ReminderTime(void)
  {
    DATE ReminderTime;
    OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
    return ReminderTime;
  }

  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void)
  {
    Outlook_xp::RecipientsPtr ReplyRecipients;
    OLECHECK(this->get_ReplyRecipients(&ReplyRecipients));
    return ReplyRecipients;
  }

  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void)
  {
    Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
    OLECHECK(this->get_SaveSentMessageFolder(&SaveSentMessageFolder));
    return SaveSentMessageFolder;
  }

  BSTR __fastcall get_SenderName(void)
  {
    BSTR SenderName = 0;
    OLECHECK(this->get_SenderName((BSTR*)&SenderName));
    return SenderName;
  }

  VARIANT_BOOL __fastcall get_Sent(void)
  {
    VARIANT_BOOL Sent;
    OLECHECK(this->get_Sent((VARIANT_BOOL*)&Sent));
    return Sent;
  }

  DATE __fastcall get_SentOn(void)
  {
    DATE SentOn;
    OLECHECK(this->get_SentOn((DATE*)&SentOn));
    return SentOn;
  }

  VARIANT_BOOL __fastcall get_Submitted(void)
  {
    VARIANT_BOOL Submitted;
    OLECHECK(this->get_Submitted((VARIANT_BOOL*)&Submitted));
    return Submitted;
  }

  Outlook_xp::MeetingItem* __fastcall Forward(void)
  {
    Outlook_xp::MeetingItem* Item = 0;
    OLECHECK(this->Forward((Outlook_xp::MeetingItem**)&Item));
    return Item;
  }

  Outlook_xp::AppointmentItem* __fastcall GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/)
  {
    Outlook_xp::AppointmentItem* Item = 0;
    OLECHECK(this->GetAssociatedAppointment(AddToCalendar, (Outlook_xp::AppointmentItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall Reply(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall ReplyAll(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime, write = set_ReceivedTime};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _ContactItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063021-0000-0000-C000-000000000046}
// *********************************************************************//
interface _ContactItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_Account(BSTR* Account/*[out,retval]*/) = 0; // [14848]
  virtual HRESULT STDMETHODCALLTYPE set_Account(BSTR Account/*[in]*/) = 0; // [14848]
  virtual HRESULT STDMETHODCALLTYPE get_Anniversary(DATE* Anniversary/*[out,retval]*/) = 0; // [14913]
  virtual HRESULT STDMETHODCALLTYPE set_Anniversary(DATE Anniversary/*[in]*/) = 0; // [14913]
  virtual HRESULT STDMETHODCALLTYPE get_AssistantName(BSTR* AssistantName/*[out,retval]*/) = 0; // [14896]
  virtual HRESULT STDMETHODCALLTYPE set_AssistantName(BSTR AssistantName/*[in]*/) = 0; // [14896]
  virtual HRESULT STDMETHODCALLTYPE get_AssistantTelephoneNumber(BSTR* AssistantTelephoneNumber/*[out,retval]*/) = 0; // [14894]
  virtual HRESULT STDMETHODCALLTYPE set_AssistantTelephoneNumber(BSTR AssistantTelephoneNumber/*[in]*/) = 0; // [14894]
  virtual HRESULT STDMETHODCALLTYPE get_Birthday(DATE* Birthday/*[out,retval]*/) = 0; // [14914]
  virtual HRESULT STDMETHODCALLTYPE set_Birthday(DATE Birthday/*[in]*/) = 0; // [14914]
  virtual HRESULT STDMETHODCALLTYPE get_Business2TelephoneNumber(BSTR* Business2TelephoneNumber/*[out,retval]*/) = 0; // [14875]
  virtual HRESULT STDMETHODCALLTYPE set_Business2TelephoneNumber(BSTR Business2TelephoneNumber/*[in]*/) = 0; // [14875]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddress(BSTR* BusinessAddress/*[out,retval]*/) = 0; // [32795]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddress(BSTR BusinessAddress/*[in]*/) = 0; // [32795]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressCity(BSTR* BusinessAddressCity/*[out,retval]*/) = 0; // [32838]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressCity(BSTR BusinessAddressCity/*[in]*/) = 0; // [32838]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressCountry(BSTR* BusinessAddressCountry/*[out,retval]*/) = 0; // [32841]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressCountry(BSTR BusinessAddressCountry/*[in]*/) = 0; // [32841]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressPostalCode(BSTR* BusinessAddressPostalCode/*[out,retval]*/) = 0; // [32840]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressPostalCode(BSTR BusinessAddressPostalCode/*[in]*/) = 0; // [32840]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressPostOfficeBox(BSTR* BusinessAddressPostOfficeBox/*[out,retval]*/) = 0; // [32842]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressPostOfficeBox(BSTR BusinessAddressPostOfficeBox/*[in]*/) = 0; // [32842]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressState(BSTR* BusinessAddressState/*[out,retval]*/) = 0; // [32839]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressState(BSTR BusinessAddressState/*[in]*/) = 0; // [32839]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessAddressStreet(BSTR* BusinessAddressStreet/*[out,retval]*/) = 0; // [32837]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessAddressStreet(BSTR BusinessAddressStreet/*[in]*/) = 0; // [32837]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessFaxNumber(BSTR* BusinessFaxNumber/*[out,retval]*/) = 0; // [14884]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessFaxNumber(BSTR BusinessFaxNumber/*[in]*/) = 0; // [14884]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessHomePage(BSTR* BusinessHomePage/*[out,retval]*/) = 0; // [14929]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessHomePage(BSTR BusinessHomePage/*[in]*/) = 0; // [14929]
  virtual HRESULT STDMETHODCALLTYPE get_BusinessTelephoneNumber(BSTR* BusinessTelephoneNumber/*[out,retval]*/) = 0; // [14856]
  virtual HRESULT STDMETHODCALLTYPE set_BusinessTelephoneNumber(BSTR BusinessTelephoneNumber/*[in]*/) = 0; // [14856]
  virtual HRESULT STDMETHODCALLTYPE get_CallbackTelephoneNumber(BSTR* CallbackTelephoneNumber/*[out,retval]*/) = 0; // [14850]
  virtual HRESULT STDMETHODCALLTYPE set_CallbackTelephoneNumber(BSTR CallbackTelephoneNumber/*[in]*/) = 0; // [14850]
  virtual HRESULT STDMETHODCALLTYPE get_CarTelephoneNumber(BSTR* CarTelephoneNumber/*[out,retval]*/) = 0; // [14878]
  virtual HRESULT STDMETHODCALLTYPE set_CarTelephoneNumber(BSTR CarTelephoneNumber/*[in]*/) = 0; // [14878]
  virtual HRESULT STDMETHODCALLTYPE get_Children(BSTR* Children/*[out,retval]*/) = 0; // [32780]
  virtual HRESULT STDMETHODCALLTYPE set_Children(BSTR Children/*[in]*/) = 0; // [32780]
  virtual HRESULT STDMETHODCALLTYPE get_CompanyAndFullName(BSTR* CompanyAndFullName/*[out,retval]*/) = 0; // [32792]
  virtual HRESULT STDMETHODCALLTYPE get_CompanyLastFirstNoSpace(BSTR* CompanyLastFirstNoSpace/*[out,retval]*/) = 0; // [32818]
  virtual HRESULT STDMETHODCALLTYPE get_CompanyLastFirstSpaceOnly(BSTR* CompanyLastFirstSpaceOnly/*[out,retval]*/) = 0; // [32819]
  virtual HRESULT STDMETHODCALLTYPE get_CompanyMainTelephoneNumber(BSTR* CompanyMainTelephoneNumber/*[out,retval]*/) = 0; // [14935]
  virtual HRESULT STDMETHODCALLTYPE set_CompanyMainTelephoneNumber(BSTR CompanyMainTelephoneNumber/*[in]*/) = 0; // [14935]
  virtual HRESULT STDMETHODCALLTYPE get_CompanyName(BSTR* CompanyName/*[out,retval]*/) = 0; // [14870]
  virtual HRESULT STDMETHODCALLTYPE set_CompanyName(BSTR CompanyName/*[in]*/) = 0; // [14870]
  virtual HRESULT STDMETHODCALLTYPE get_ComputerNetworkName(BSTR* ComputerNetworkName/*[out,retval]*/) = 0; // [14921]
  virtual HRESULT STDMETHODCALLTYPE set_ComputerNetworkName(BSTR ComputerNetworkName/*[in]*/) = 0; // [14921]
  virtual HRESULT STDMETHODCALLTYPE get_CustomerID(BSTR* CustomerID/*[out,retval]*/) = 0; // [14922]
  virtual HRESULT STDMETHODCALLTYPE set_CustomerID(BSTR CustomerID/*[in]*/) = 0; // [14922]
  virtual HRESULT STDMETHODCALLTYPE get_Department(BSTR* Department/*[out,retval]*/) = 0; // [14872]
  virtual HRESULT STDMETHODCALLTYPE set_Department(BSTR Department/*[in]*/) = 0; // [14872]
  virtual HRESULT STDMETHODCALLTYPE get_Email1Address(BSTR* Email1Address/*[out,retval]*/) = 0; // [32899]
  virtual HRESULT STDMETHODCALLTYPE set_Email1Address(BSTR Email1Address/*[in]*/) = 0; // [32899]
  virtual HRESULT STDMETHODCALLTYPE get_Email1AddressType(BSTR* Email1AddressType/*[out,retval]*/) = 0; // [32898]
  virtual HRESULT STDMETHODCALLTYPE set_Email1AddressType(BSTR Email1AddressType/*[in]*/) = 0; // [32898]
  virtual HRESULT STDMETHODCALLTYPE get_Email1DisplayName(BSTR* Email1DisplayName/*[out,retval]*/) = 0; // [32896]
  virtual HRESULT STDMETHODCALLTYPE get_Email1EntryID(BSTR* Email1EntryID/*[out,retval]*/) = 0; // [32901]
  virtual HRESULT STDMETHODCALLTYPE get_Email2Address(BSTR* Email2Address/*[out,retval]*/) = 0; // [32915]
  virtual HRESULT STDMETHODCALLTYPE set_Email2Address(BSTR Email2Address/*[in]*/) = 0; // [32915]
  virtual HRESULT STDMETHODCALLTYPE get_Email2AddressType(BSTR* Email2AddressType/*[out,retval]*/) = 0; // [32914]
  virtual HRESULT STDMETHODCALLTYPE set_Email2AddressType(BSTR Email2AddressType/*[in]*/) = 0; // [32914]
  virtual HRESULT STDMETHODCALLTYPE get_Email2DisplayName(BSTR* Email2DisplayName/*[out,retval]*/) = 0; // [32912]
  virtual HRESULT STDMETHODCALLTYPE get_Email2EntryID(BSTR* Email2EntryID/*[out,retval]*/) = 0; // [32917]
  virtual HRESULT STDMETHODCALLTYPE get_Email3Address(BSTR* Email3Address/*[out,retval]*/) = 0; // [32931]
  virtual HRESULT STDMETHODCALLTYPE set_Email3Address(BSTR Email3Address/*[in]*/) = 0; // [32931]
  virtual HRESULT STDMETHODCALLTYPE get_Email3AddressType(BSTR* Email3AddressType/*[out,retval]*/) = 0; // [32930]
  virtual HRESULT STDMETHODCALLTYPE set_Email3AddressType(BSTR Email3AddressType/*[in]*/) = 0; // [32930]
  virtual HRESULT STDMETHODCALLTYPE get_Email3DisplayName(BSTR* Email3DisplayName/*[out,retval]*/) = 0; // [32928]
  virtual HRESULT STDMETHODCALLTYPE get_Email3EntryID(BSTR* Email3EntryID/*[out,retval]*/) = 0; // [32933]
  virtual HRESULT STDMETHODCALLTYPE get_FileAs(BSTR* FileAs/*[out,retval]*/) = 0; // [32773]
  virtual HRESULT STDMETHODCALLTYPE set_FileAs(BSTR FileAs/*[in]*/) = 0; // [32773]
  virtual HRESULT STDMETHODCALLTYPE get_FirstName(BSTR* FirstName/*[out,retval]*/) = 0; // [14854]
  virtual HRESULT STDMETHODCALLTYPE set_FirstName(BSTR FirstName/*[in]*/) = 0; // [14854]
  virtual HRESULT STDMETHODCALLTYPE get_FTPSite(BSTR* FTPSite/*[out,retval]*/) = 0; // [14924]
  virtual HRESULT STDMETHODCALLTYPE set_FTPSite(BSTR FTPSite/*[in]*/) = 0; // [14924]
  virtual HRESULT STDMETHODCALLTYPE get_FullName(BSTR* FullName/*[out,retval]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE set_FullName(BSTR FullName/*[in]*/) = 0; // [12289]
  virtual HRESULT STDMETHODCALLTYPE get_FullNameAndCompany(BSTR* FullNameAndCompany/*[out,retval]*/) = 0; // [32793]
  virtual HRESULT STDMETHODCALLTYPE get_Gender(Outlook_xp::OlGender* Gender/*[out,retval]*/) = 0; // [14925]
  virtual HRESULT STDMETHODCALLTYPE set_Gender(Outlook_xp::OlGender Gender/*[in]*/) = 0; // [14925]
  virtual HRESULT STDMETHODCALLTYPE get_GovernmentIDNumber(BSTR* GovernmentIDNumber/*[out,retval]*/) = 0; // [14855]
  virtual HRESULT STDMETHODCALLTYPE set_GovernmentIDNumber(BSTR GovernmentIDNumber/*[in]*/) = 0; // [14855]
  virtual HRESULT STDMETHODCALLTYPE get_Hobby(BSTR* Hobby/*[out,retval]*/) = 0; // [14915]
  virtual HRESULT STDMETHODCALLTYPE set_Hobby(BSTR Hobby/*[in]*/) = 0; // [14915]
  virtual HRESULT STDMETHODCALLTYPE get_Home2TelephoneNumber(BSTR* Home2TelephoneNumber/*[out,retval]*/) = 0; // [14895]
  virtual HRESULT STDMETHODCALLTYPE set_Home2TelephoneNumber(BSTR Home2TelephoneNumber/*[in]*/) = 0; // [14895]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddress(BSTR* HomeAddress/*[out,retval]*/) = 0; // [32794]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddress(BSTR HomeAddress/*[in]*/) = 0; // [32794]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressCity(BSTR* HomeAddressCity/*[out,retval]*/) = 0; // [14937]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressCity(BSTR HomeAddressCity/*[in]*/) = 0; // [14937]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressCountry(BSTR* HomeAddressCountry/*[out,retval]*/) = 0; // [14938]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressCountry(BSTR HomeAddressCountry/*[in]*/) = 0; // [14938]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressPostalCode(BSTR* HomeAddressPostalCode/*[out,retval]*/) = 0; // [14939]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressPostalCode(BSTR HomeAddressPostalCode/*[in]*/) = 0; // [14939]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressPostOfficeBox(BSTR* HomeAddressPostOfficeBox/*[out,retval]*/) = 0; // [14942]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressPostOfficeBox(BSTR HomeAddressPostOfficeBox/*[in]*/) = 0; // [14942]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressState(BSTR* HomeAddressState/*[out,retval]*/) = 0; // [14940]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressState(BSTR HomeAddressState/*[in]*/) = 0; // [14940]
  virtual HRESULT STDMETHODCALLTYPE get_HomeAddressStreet(BSTR* HomeAddressStreet/*[out,retval]*/) = 0; // [14941]
  virtual HRESULT STDMETHODCALLTYPE set_HomeAddressStreet(BSTR HomeAddressStreet/*[in]*/) = 0; // [14941]
  virtual HRESULT STDMETHODCALLTYPE get_HomeFaxNumber(BSTR* HomeFaxNumber/*[out,retval]*/) = 0; // [14885]
  virtual HRESULT STDMETHODCALLTYPE set_HomeFaxNumber(BSTR HomeFaxNumber/*[in]*/) = 0; // [14885]
  virtual HRESULT STDMETHODCALLTYPE get_HomeTelephoneNumber(BSTR* HomeTelephoneNumber/*[out,retval]*/) = 0; // [14857]
  virtual HRESULT STDMETHODCALLTYPE set_HomeTelephoneNumber(BSTR HomeTelephoneNumber/*[in]*/) = 0; // [14857]
  virtual HRESULT STDMETHODCALLTYPE get_Initials(BSTR* Initials/*[out,retval]*/) = 0; // [14858]
  virtual HRESULT STDMETHODCALLTYPE set_Initials(BSTR Initials/*[in]*/) = 0; // [14858]
  virtual HRESULT STDMETHODCALLTYPE get_InternetFreeBusyAddress(BSTR* InternetFreeBusyAddress/*[out,retval]*/) = 0; // [32984]
  virtual HRESULT STDMETHODCALLTYPE set_InternetFreeBusyAddress(BSTR InternetFreeBusyAddress/*[in]*/) = 0; // [32984]
  virtual HRESULT STDMETHODCALLTYPE get_ISDNNumber(BSTR* ISDNNumber/*[out,retval]*/) = 0; // [14893]
  virtual HRESULT STDMETHODCALLTYPE set_ISDNNumber(BSTR ISDNNumber/*[in]*/) = 0; // [14893]
  virtual HRESULT STDMETHODCALLTYPE get_JobTitle(BSTR* JobTitle/*[out,retval]*/) = 0; // [14871]
  virtual HRESULT STDMETHODCALLTYPE set_JobTitle(BSTR JobTitle/*[in]*/) = 0; // [14871]
  virtual HRESULT STDMETHODCALLTYPE get_Journal(VARIANT_BOOL* Journal/*[out,retval]*/) = 0; // [32805]
  virtual HRESULT STDMETHODCALLTYPE set_Journal(VARIANT_BOOL Journal/*[in]*/) = 0; // [32805]
  virtual HRESULT STDMETHODCALLTYPE get_Language(BSTR* Language/*[out,retval]*/) = 0; // [14860]
  virtual HRESULT STDMETHODCALLTYPE set_Language(BSTR Language/*[in]*/) = 0; // [14860]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstAndSuffix(BSTR* LastFirstAndSuffix/*[out,retval]*/) = 0; // [32822]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstNoSpace(BSTR* LastFirstNoSpace/*[out,retval]*/) = 0; // [32816]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstNoSpaceCompany(BSTR* LastFirstNoSpaceCompany/*[out,retval]*/) = 0; // [32820]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstSpaceOnly(BSTR* LastFirstSpaceOnly/*[out,retval]*/) = 0; // [32817]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstSpaceOnlyCompany(BSTR* LastFirstSpaceOnlyCompany/*[out,retval]*/) = 0; // [32821]
  virtual HRESULT STDMETHODCALLTYPE get_LastName(BSTR* LastName/*[out,retval]*/) = 0; // [14865]
  virtual HRESULT STDMETHODCALLTYPE set_LastName(BSTR LastName/*[in]*/) = 0; // [14865]
  virtual HRESULT STDMETHODCALLTYPE get_LastNameAndFirstName(BSTR* LastNameAndFirstName/*[out,retval]*/) = 0; // [32791]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddress(BSTR* MailingAddress/*[out,retval]*/) = 0; // [14869]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddress(BSTR MailingAddress/*[in]*/) = 0; // [14869]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressCity(BSTR* MailingAddressCity/*[out,retval]*/) = 0; // [14887]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressCity(BSTR MailingAddressCity/*[in]*/) = 0; // [14887]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressCountry(BSTR* MailingAddressCountry/*[out,retval]*/) = 0; // [14886]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressCountry(BSTR MailingAddressCountry/*[in]*/) = 0; // [14886]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressPostalCode(BSTR* MailingAddressPostalCode/*[out,retval]*/) = 0; // [14890]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressPostalCode(BSTR MailingAddressPostalCode/*[in]*/) = 0; // [14890]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressPostOfficeBox(BSTR* MailingAddressPostOfficeBox/*[out,retval]*/) = 0; // [14891]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressPostOfficeBox(BSTR MailingAddressPostOfficeBox/*[in]*/) = 0; // [14891]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressState(BSTR* MailingAddressState/*[out,retval]*/) = 0; // [14888]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressState(BSTR MailingAddressState/*[in]*/) = 0; // [14888]
  virtual HRESULT STDMETHODCALLTYPE get_MailingAddressStreet(BSTR* MailingAddressStreet/*[out,retval]*/) = 0; // [14889]
  virtual HRESULT STDMETHODCALLTYPE set_MailingAddressStreet(BSTR MailingAddressStreet/*[in]*/) = 0; // [14889]
  virtual HRESULT STDMETHODCALLTYPE get_ManagerName(BSTR* ManagerName/*[out,retval]*/) = 0; // [14926]
  virtual HRESULT STDMETHODCALLTYPE set_ManagerName(BSTR ManagerName/*[in]*/) = 0; // [14926]
  virtual HRESULT STDMETHODCALLTYPE get_MiddleName(BSTR* MiddleName/*[out,retval]*/) = 0; // [14916]
  virtual HRESULT STDMETHODCALLTYPE set_MiddleName(BSTR MiddleName/*[in]*/) = 0; // [14916]
  virtual HRESULT STDMETHODCALLTYPE get_MobileTelephoneNumber(BSTR* MobileTelephoneNumber/*[out,retval]*/) = 0; // [14876]
  virtual HRESULT STDMETHODCALLTYPE set_MobileTelephoneNumber(BSTR MobileTelephoneNumber/*[in]*/) = 0; // [14876]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingAlias(BSTR* NetMeetingAlias/*[out,retval]*/) = 0; // [32863]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingAlias(BSTR NetMeetingAlias/*[in]*/) = 0; // [32863]
  virtual HRESULT STDMETHODCALLTYPE get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/) = 0; // [32864]
  virtual HRESULT STDMETHODCALLTYPE set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/) = 0; // [32864]
  virtual HRESULT STDMETHODCALLTYPE get_NickName(BSTR* NickName/*[out,retval]*/) = 0; // [14927]
  virtual HRESULT STDMETHODCALLTYPE set_NickName(BSTR NickName/*[in]*/) = 0; // [14927]
  virtual HRESULT STDMETHODCALLTYPE get_OfficeLocation(BSTR* OfficeLocation/*[out,retval]*/) = 0; // [14873]
  virtual HRESULT STDMETHODCALLTYPE set_OfficeLocation(BSTR OfficeLocation/*[in]*/) = 0; // [14873]
  virtual HRESULT STDMETHODCALLTYPE get_OrganizationalIDNumber(BSTR* OrganizationalIDNumber/*[out,retval]*/) = 0; // [14864]
  virtual HRESULT STDMETHODCALLTYPE set_OrganizationalIDNumber(BSTR OrganizationalIDNumber/*[in]*/) = 0; // [14864]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddress(BSTR* OtherAddress/*[out,retval]*/) = 0; // [32796]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddress(BSTR OtherAddress/*[in]*/) = 0; // [32796]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressCity(BSTR* OtherAddressCity/*[out,retval]*/) = 0; // [14943]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressCity(BSTR OtherAddressCity/*[in]*/) = 0; // [14943]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressCountry(BSTR* OtherAddressCountry/*[out,retval]*/) = 0; // [14944]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressCountry(BSTR OtherAddressCountry/*[in]*/) = 0; // [14944]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressPostalCode(BSTR* OtherAddressPostalCode/*[out,retval]*/) = 0; // [14945]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressPostalCode(BSTR OtherAddressPostalCode/*[in]*/) = 0; // [14945]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressPostOfficeBox(BSTR* OtherAddressPostOfficeBox/*[out,retval]*/) = 0; // [14948]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressPostOfficeBox(BSTR OtherAddressPostOfficeBox/*[in]*/) = 0; // [14948]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressState(BSTR* OtherAddressState/*[out,retval]*/) = 0; // [14946]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressState(BSTR OtherAddressState/*[in]*/) = 0; // [14946]
  virtual HRESULT STDMETHODCALLTYPE get_OtherAddressStreet(BSTR* OtherAddressStreet/*[out,retval]*/) = 0; // [14947]
  virtual HRESULT STDMETHODCALLTYPE set_OtherAddressStreet(BSTR OtherAddressStreet/*[in]*/) = 0; // [14947]
  virtual HRESULT STDMETHODCALLTYPE get_OtherFaxNumber(BSTR* OtherFaxNumber/*[out,retval]*/) = 0; // [14883]
  virtual HRESULT STDMETHODCALLTYPE set_OtherFaxNumber(BSTR OtherFaxNumber/*[in]*/) = 0; // [14883]
  virtual HRESULT STDMETHODCALLTYPE get_OtherTelephoneNumber(BSTR* OtherTelephoneNumber/*[out,retval]*/) = 0; // [14879]
  virtual HRESULT STDMETHODCALLTYPE set_OtherTelephoneNumber(BSTR OtherTelephoneNumber/*[in]*/) = 0; // [14879]
  virtual HRESULT STDMETHODCALLTYPE get_PagerNumber(BSTR* PagerNumber/*[out,retval]*/) = 0; // [14881]
  virtual HRESULT STDMETHODCALLTYPE set_PagerNumber(BSTR PagerNumber/*[in]*/) = 0; // [14881]
  virtual HRESULT STDMETHODCALLTYPE get_PersonalHomePage(BSTR* PersonalHomePage/*[out,retval]*/) = 0; // [14928]
  virtual HRESULT STDMETHODCALLTYPE set_PersonalHomePage(BSTR PersonalHomePage/*[in]*/) = 0; // [14928]
  virtual HRESULT STDMETHODCALLTYPE get_PrimaryTelephoneNumber(BSTR* PrimaryTelephoneNumber/*[out,retval]*/) = 0; // [14874]
  virtual HRESULT STDMETHODCALLTYPE set_PrimaryTelephoneNumber(BSTR PrimaryTelephoneNumber/*[in]*/) = 0; // [14874]
  virtual HRESULT STDMETHODCALLTYPE get_Profession(BSTR* Profession/*[out,retval]*/) = 0; // [14918]
  virtual HRESULT STDMETHODCALLTYPE set_Profession(BSTR Profession/*[in]*/) = 0; // [14918]
  virtual HRESULT STDMETHODCALLTYPE get_RadioTelephoneNumber(BSTR* RadioTelephoneNumber/*[out,retval]*/) = 0; // [14877]
  virtual HRESULT STDMETHODCALLTYPE set_RadioTelephoneNumber(BSTR RadioTelephoneNumber/*[in]*/) = 0; // [14877]
  virtual HRESULT STDMETHODCALLTYPE get_ReferredBy(BSTR* ReferredBy/*[out,retval]*/) = 0; // [14919]
  virtual HRESULT STDMETHODCALLTYPE set_ReferredBy(BSTR ReferredBy/*[in]*/) = 0; // [14919]
  virtual HRESULT STDMETHODCALLTYPE get_SelectedMailingAddress(Outlook_xp::OlMailingAddress* SelectedMailingAddress/*[out,retval]*/) = 0; // [32802]
  virtual HRESULT STDMETHODCALLTYPE set_SelectedMailingAddress(Outlook_xp::OlMailingAddress SelectedMailingAddress/*[in]*/) = 0; // [32802]
  virtual HRESULT STDMETHODCALLTYPE get_Spouse(BSTR* Spouse/*[out,retval]*/) = 0; // [14920]
  virtual HRESULT STDMETHODCALLTYPE set_Spouse(BSTR Spouse/*[in]*/) = 0; // [14920]
  virtual HRESULT STDMETHODCALLTYPE get_Suffix(BSTR* Suffix/*[out,retval]*/) = 0; // [14853]
  virtual HRESULT STDMETHODCALLTYPE set_Suffix(BSTR Suffix/*[in]*/) = 0; // [14853]
  virtual HRESULT STDMETHODCALLTYPE get_TelexNumber(BSTR* TelexNumber/*[out,retval]*/) = 0; // [14892]
  virtual HRESULT STDMETHODCALLTYPE set_TelexNumber(BSTR TelexNumber/*[in]*/) = 0; // [14892]
  virtual HRESULT STDMETHODCALLTYPE get_Title(BSTR* Title/*[out,retval]*/) = 0; // [14917]
  virtual HRESULT STDMETHODCALLTYPE set_Title(BSTR Title/*[in]*/) = 0; // [14917]
  virtual HRESULT STDMETHODCALLTYPE get_TTYTDDTelephoneNumber(BSTR* TTYTDDTelephoneNumber/*[out,retval]*/) = 0; // [14923]
  virtual HRESULT STDMETHODCALLTYPE set_TTYTDDTelephoneNumber(BSTR TTYTDDTelephoneNumber/*[in]*/) = 0; // [14923]
  virtual HRESULT STDMETHODCALLTYPE get_User1(BSTR* User1/*[out,retval]*/) = 0; // [32847]
  virtual HRESULT STDMETHODCALLTYPE set_User1(BSTR User1/*[in]*/) = 0; // [32847]
  virtual HRESULT STDMETHODCALLTYPE get_User2(BSTR* User2/*[out,retval]*/) = 0; // [32848]
  virtual HRESULT STDMETHODCALLTYPE set_User2(BSTR User2/*[in]*/) = 0; // [32848]
  virtual HRESULT STDMETHODCALLTYPE get_User3(BSTR* User3/*[out,retval]*/) = 0; // [32849]
  virtual HRESULT STDMETHODCALLTYPE set_User3(BSTR User3/*[in]*/) = 0; // [32849]
  virtual HRESULT STDMETHODCALLTYPE get_User4(BSTR* User4/*[out,retval]*/) = 0; // [32850]
  virtual HRESULT STDMETHODCALLTYPE set_User4(BSTR User4/*[in]*/) = 0; // [32850]
  virtual HRESULT STDMETHODCALLTYPE get_UserCertificate(BSTR* UserCertificate/*[out,retval]*/) = 0; // [32790]
  virtual HRESULT STDMETHODCALLTYPE set_UserCertificate(BSTR UserCertificate/*[in]*/) = 0; // [32790]
  virtual HRESULT STDMETHODCALLTYPE get_WebPage(BSTR* WebPage/*[out,retval]*/) = 0; // [32811]
  virtual HRESULT STDMETHODCALLTYPE set_WebPage(BSTR WebPage/*[in]*/) = 0; // [32811]
  virtual HRESULT STDMETHODCALLTYPE get_YomiCompanyName(BSTR* YomiCompanyName/*[out,retval]*/) = 0; // [32814]
  virtual HRESULT STDMETHODCALLTYPE set_YomiCompanyName(BSTR YomiCompanyName/*[in]*/) = 0; // [32814]
  virtual HRESULT STDMETHODCALLTYPE get_YomiFirstName(BSTR* YomiFirstName/*[out,retval]*/) = 0; // [32812]
  virtual HRESULT STDMETHODCALLTYPE set_YomiFirstName(BSTR YomiFirstName/*[in]*/) = 0; // [32812]
  virtual HRESULT STDMETHODCALLTYPE get_YomiLastName(BSTR* YomiLastName/*[out,retval]*/) = 0; // [32813]
  virtual HRESULT STDMETHODCALLTYPE set_YomiLastName(BSTR YomiLastName/*[in]*/) = 0; // [32813]
  virtual HRESULT STDMETHODCALLTYPE ForwardAsVcard(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63649]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_LastFirstNoSpaceAndSuffix(BSTR* LastFirstNoSpaceAndSuffix/*[out,retval]*/) = 0; // [32824]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_IMAddress(BSTR* IMAddress/*[out,retval]*/) = 0; // [32866]
  virtual HRESULT STDMETHODCALLTYPE set_IMAddress(BSTR IMAddress/*[in]*/) = 0; // [32866]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_Email1DisplayName(BSTR Email1DisplayName/*[in]*/) = 0; // [32896]
  virtual HRESULT STDMETHODCALLTYPE set_Email2DisplayName(BSTR Email2DisplayName/*[in]*/) = 0; // [32912]
  virtual HRESULT STDMETHODCALLTYPE set_Email3DisplayName(BSTR Email3DisplayName/*[in]*/) = 0; // [32928]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  BSTR __fastcall get_Account(void)
  {
    BSTR Account = 0;
    OLECHECK(this->get_Account((BSTR*)&Account));
    return Account;
  }

  DATE __fastcall get_Anniversary(void)
  {
    DATE Anniversary;
    OLECHECK(this->get_Anniversary((DATE*)&Anniversary));
    return Anniversary;
  }

  BSTR __fastcall get_AssistantName(void)
  {
    BSTR AssistantName = 0;
    OLECHECK(this->get_AssistantName((BSTR*)&AssistantName));
    return AssistantName;
  }

  BSTR __fastcall get_AssistantTelephoneNumber(void)
  {
    BSTR AssistantTelephoneNumber = 0;
    OLECHECK(this->get_AssistantTelephoneNumber((BSTR*)&AssistantTelephoneNumber));
    return AssistantTelephoneNumber;
  }

  DATE __fastcall get_Birthday(void)
  {
    DATE Birthday;
    OLECHECK(this->get_Birthday((DATE*)&Birthday));
    return Birthday;
  }

  BSTR __fastcall get_Business2TelephoneNumber(void)
  {
    BSTR Business2TelephoneNumber = 0;
    OLECHECK(this->get_Business2TelephoneNumber((BSTR*)&Business2TelephoneNumber));
    return Business2TelephoneNumber;
  }

  BSTR __fastcall get_BusinessAddress(void)
  {
    BSTR BusinessAddress = 0;
    OLECHECK(this->get_BusinessAddress((BSTR*)&BusinessAddress));
    return BusinessAddress;
  }

  BSTR __fastcall get_BusinessAddressCity(void)
  {
    BSTR BusinessAddressCity = 0;
    OLECHECK(this->get_BusinessAddressCity((BSTR*)&BusinessAddressCity));
    return BusinessAddressCity;
  }

  BSTR __fastcall get_BusinessAddressCountry(void)
  {
    BSTR BusinessAddressCountry = 0;
    OLECHECK(this->get_BusinessAddressCountry((BSTR*)&BusinessAddressCountry));
    return BusinessAddressCountry;
  }

  BSTR __fastcall get_BusinessAddressPostalCode(void)
  {
    BSTR BusinessAddressPostalCode = 0;
    OLECHECK(this->get_BusinessAddressPostalCode((BSTR*)&BusinessAddressPostalCode));
    return BusinessAddressPostalCode;
  }

  BSTR __fastcall get_BusinessAddressPostOfficeBox(void)
  {
    BSTR BusinessAddressPostOfficeBox = 0;
    OLECHECK(this->get_BusinessAddressPostOfficeBox((BSTR*)&BusinessAddressPostOfficeBox));
    return BusinessAddressPostOfficeBox;
  }

  BSTR __fastcall get_BusinessAddressState(void)
  {
    BSTR BusinessAddressState = 0;
    OLECHECK(this->get_BusinessAddressState((BSTR*)&BusinessAddressState));
    return BusinessAddressState;
  }

  BSTR __fastcall get_BusinessAddressStreet(void)
  {
    BSTR BusinessAddressStreet = 0;
    OLECHECK(this->get_BusinessAddressStreet((BSTR*)&BusinessAddressStreet));
    return BusinessAddressStreet;
  }

  BSTR __fastcall get_BusinessFaxNumber(void)
  {
    BSTR BusinessFaxNumber = 0;
    OLECHECK(this->get_BusinessFaxNumber((BSTR*)&BusinessFaxNumber));
    return BusinessFaxNumber;
  }

  BSTR __fastcall get_BusinessHomePage(void)
  {
    BSTR BusinessHomePage = 0;
    OLECHECK(this->get_BusinessHomePage((BSTR*)&BusinessHomePage));
    return BusinessHomePage;
  }

  BSTR __fastcall get_BusinessTelephoneNumber(void)
  {
    BSTR BusinessTelephoneNumber = 0;
    OLECHECK(this->get_BusinessTelephoneNumber((BSTR*)&BusinessTelephoneNumber));
    return BusinessTelephoneNumber;
  }

  BSTR __fastcall get_CallbackTelephoneNumber(void)
  {
    BSTR CallbackTelephoneNumber = 0;
    OLECHECK(this->get_CallbackTelephoneNumber((BSTR*)&CallbackTelephoneNumber));
    return CallbackTelephoneNumber;
  }

  BSTR __fastcall get_CarTelephoneNumber(void)
  {
    BSTR CarTelephoneNumber = 0;
    OLECHECK(this->get_CarTelephoneNumber((BSTR*)&CarTelephoneNumber));
    return CarTelephoneNumber;
  }

  BSTR __fastcall get_Children(void)
  {
    BSTR Children = 0;
    OLECHECK(this->get_Children((BSTR*)&Children));
    return Children;
  }

  BSTR __fastcall get_CompanyAndFullName(void)
  {
    BSTR CompanyAndFullName = 0;
    OLECHECK(this->get_CompanyAndFullName((BSTR*)&CompanyAndFullName));
    return CompanyAndFullName;
  }

  BSTR __fastcall get_CompanyLastFirstNoSpace(void)
  {
    BSTR CompanyLastFirstNoSpace = 0;
    OLECHECK(this->get_CompanyLastFirstNoSpace((BSTR*)&CompanyLastFirstNoSpace));
    return CompanyLastFirstNoSpace;
  }

  BSTR __fastcall get_CompanyLastFirstSpaceOnly(void)
  {
    BSTR CompanyLastFirstSpaceOnly = 0;
    OLECHECK(this->get_CompanyLastFirstSpaceOnly((BSTR*)&CompanyLastFirstSpaceOnly));
    return CompanyLastFirstSpaceOnly;
  }

  BSTR __fastcall get_CompanyMainTelephoneNumber(void)
  {
    BSTR CompanyMainTelephoneNumber = 0;
    OLECHECK(this->get_CompanyMainTelephoneNumber((BSTR*)&CompanyMainTelephoneNumber));
    return CompanyMainTelephoneNumber;
  }

  BSTR __fastcall get_CompanyName(void)
  {
    BSTR CompanyName = 0;
    OLECHECK(this->get_CompanyName((BSTR*)&CompanyName));
    return CompanyName;
  }

  BSTR __fastcall get_ComputerNetworkName(void)
  {
    BSTR ComputerNetworkName = 0;
    OLECHECK(this->get_ComputerNetworkName((BSTR*)&ComputerNetworkName));
    return ComputerNetworkName;
  }

  BSTR __fastcall get_CustomerID(void)
  {
    BSTR CustomerID = 0;
    OLECHECK(this->get_CustomerID((BSTR*)&CustomerID));
    return CustomerID;
  }

  BSTR __fastcall get_Department(void)
  {
    BSTR Department = 0;
    OLECHECK(this->get_Department((BSTR*)&Department));
    return Department;
  }

  BSTR __fastcall get_Email1Address(void)
  {
    BSTR Email1Address = 0;
    OLECHECK(this->get_Email1Address((BSTR*)&Email1Address));
    return Email1Address;
  }

  BSTR __fastcall get_Email1AddressType(void)
  {
    BSTR Email1AddressType = 0;
    OLECHECK(this->get_Email1AddressType((BSTR*)&Email1AddressType));
    return Email1AddressType;
  }

  BSTR __fastcall get_Email1DisplayName(void)
  {
    BSTR Email1DisplayName = 0;
    OLECHECK(this->get_Email1DisplayName((BSTR*)&Email1DisplayName));
    return Email1DisplayName;
  }

  BSTR __fastcall get_Email1EntryID(void)
  {
    BSTR Email1EntryID = 0;
    OLECHECK(this->get_Email1EntryID((BSTR*)&Email1EntryID));
    return Email1EntryID;
  }

  BSTR __fastcall get_Email2Address(void)
  {
    BSTR Email2Address = 0;
    OLECHECK(this->get_Email2Address((BSTR*)&Email2Address));
    return Email2Address;
  }

  BSTR __fastcall get_Email2AddressType(void)
  {
    BSTR Email2AddressType = 0;
    OLECHECK(this->get_Email2AddressType((BSTR*)&Email2AddressType));
    return Email2AddressType;
  }

  BSTR __fastcall get_Email2DisplayName(void)
  {
    BSTR Email2DisplayName = 0;
    OLECHECK(this->get_Email2DisplayName((BSTR*)&Email2DisplayName));
    return Email2DisplayName;
  }

  BSTR __fastcall get_Email2EntryID(void)
  {
    BSTR Email2EntryID = 0;
    OLECHECK(this->get_Email2EntryID((BSTR*)&Email2EntryID));
    return Email2EntryID;
  }

  BSTR __fastcall get_Email3Address(void)
  {
    BSTR Email3Address = 0;
    OLECHECK(this->get_Email3Address((BSTR*)&Email3Address));
    return Email3Address;
  }

  BSTR __fastcall get_Email3AddressType(void)
  {
    BSTR Email3AddressType = 0;
    OLECHECK(this->get_Email3AddressType((BSTR*)&Email3AddressType));
    return Email3AddressType;
  }

  BSTR __fastcall get_Email3DisplayName(void)
  {
    BSTR Email3DisplayName = 0;
    OLECHECK(this->get_Email3DisplayName((BSTR*)&Email3DisplayName));
    return Email3DisplayName;
  }

  BSTR __fastcall get_Email3EntryID(void)
  {
    BSTR Email3EntryID = 0;
    OLECHECK(this->get_Email3EntryID((BSTR*)&Email3EntryID));
    return Email3EntryID;
  }

  BSTR __fastcall get_FileAs(void)
  {
    BSTR FileAs = 0;
    OLECHECK(this->get_FileAs((BSTR*)&FileAs));
    return FileAs;
  }

  BSTR __fastcall get_FirstName(void)
  {
    BSTR FirstName = 0;
    OLECHECK(this->get_FirstName((BSTR*)&FirstName));
    return FirstName;
  }

  BSTR __fastcall get_FTPSite(void)
  {
    BSTR FTPSite = 0;
    OLECHECK(this->get_FTPSite((BSTR*)&FTPSite));
    return FTPSite;
  }

  BSTR __fastcall get_FullName(void)
  {
    BSTR FullName = 0;
    OLECHECK(this->get_FullName((BSTR*)&FullName));
    return FullName;
  }

  BSTR __fastcall get_FullNameAndCompany(void)
  {
    BSTR FullNameAndCompany = 0;
    OLECHECK(this->get_FullNameAndCompany((BSTR*)&FullNameAndCompany));
    return FullNameAndCompany;
  }

  Outlook_xp::OlGender __fastcall get_Gender(void)
  {
    Outlook_xp::OlGender Gender;
    OLECHECK(this->get_Gender((Outlook_xp::OlGender*)&Gender));
    return Gender;
  }

  BSTR __fastcall get_GovernmentIDNumber(void)
  {
    BSTR GovernmentIDNumber = 0;
    OLECHECK(this->get_GovernmentIDNumber((BSTR*)&GovernmentIDNumber));
    return GovernmentIDNumber;
  }

  BSTR __fastcall get_Hobby(void)
  {
    BSTR Hobby = 0;
    OLECHECK(this->get_Hobby((BSTR*)&Hobby));
    return Hobby;
  }

  BSTR __fastcall get_Home2TelephoneNumber(void)
  {
    BSTR Home2TelephoneNumber = 0;
    OLECHECK(this->get_Home2TelephoneNumber((BSTR*)&Home2TelephoneNumber));
    return Home2TelephoneNumber;
  }

  BSTR __fastcall get_HomeAddress(void)
  {
    BSTR HomeAddress = 0;
    OLECHECK(this->get_HomeAddress((BSTR*)&HomeAddress));
    return HomeAddress;
  }

  BSTR __fastcall get_HomeAddressCity(void)
  {
    BSTR HomeAddressCity = 0;
    OLECHECK(this->get_HomeAddressCity((BSTR*)&HomeAddressCity));
    return HomeAddressCity;
  }

  BSTR __fastcall get_HomeAddressCountry(void)
  {
    BSTR HomeAddressCountry = 0;
    OLECHECK(this->get_HomeAddressCountry((BSTR*)&HomeAddressCountry));
    return HomeAddressCountry;
  }

  BSTR __fastcall get_HomeAddressPostalCode(void)
  {
    BSTR HomeAddressPostalCode = 0;
    OLECHECK(this->get_HomeAddressPostalCode((BSTR*)&HomeAddressPostalCode));
    return HomeAddressPostalCode;
  }

  BSTR __fastcall get_HomeAddressPostOfficeBox(void)
  {
    BSTR HomeAddressPostOfficeBox = 0;
    OLECHECK(this->get_HomeAddressPostOfficeBox((BSTR*)&HomeAddressPostOfficeBox));
    return HomeAddressPostOfficeBox;
  }

  BSTR __fastcall get_HomeAddressState(void)
  {
    BSTR HomeAddressState = 0;
    OLECHECK(this->get_HomeAddressState((BSTR*)&HomeAddressState));
    return HomeAddressState;
  }

  BSTR __fastcall get_HomeAddressStreet(void)
  {
    BSTR HomeAddressStreet = 0;
    OLECHECK(this->get_HomeAddressStreet((BSTR*)&HomeAddressStreet));
    return HomeAddressStreet;
  }

  BSTR __fastcall get_HomeFaxNumber(void)
  {
    BSTR HomeFaxNumber = 0;
    OLECHECK(this->get_HomeFaxNumber((BSTR*)&HomeFaxNumber));
    return HomeFaxNumber;
  }

  BSTR __fastcall get_HomeTelephoneNumber(void)
  {
    BSTR HomeTelephoneNumber = 0;
    OLECHECK(this->get_HomeTelephoneNumber((BSTR*)&HomeTelephoneNumber));
    return HomeTelephoneNumber;
  }

  BSTR __fastcall get_Initials(void)
  {
    BSTR Initials = 0;
    OLECHECK(this->get_Initials((BSTR*)&Initials));
    return Initials;
  }

  BSTR __fastcall get_InternetFreeBusyAddress(void)
  {
    BSTR InternetFreeBusyAddress = 0;
    OLECHECK(this->get_InternetFreeBusyAddress((BSTR*)&InternetFreeBusyAddress));
    return InternetFreeBusyAddress;
  }

  BSTR __fastcall get_ISDNNumber(void)
  {
    BSTR ISDNNumber = 0;
    OLECHECK(this->get_ISDNNumber((BSTR*)&ISDNNumber));
    return ISDNNumber;
  }

  BSTR __fastcall get_JobTitle(void)
  {
    BSTR JobTitle = 0;
    OLECHECK(this->get_JobTitle((BSTR*)&JobTitle));
    return JobTitle;
  }

  VARIANT_BOOL __fastcall get_Journal(void)
  {
    VARIANT_BOOL Journal;
    OLECHECK(this->get_Journal((VARIANT_BOOL*)&Journal));
    return Journal;
  }

  BSTR __fastcall get_Language(void)
  {
    BSTR Language = 0;
    OLECHECK(this->get_Language((BSTR*)&Language));
    return Language;
  }

  BSTR __fastcall get_LastFirstAndSuffix(void)
  {
    BSTR LastFirstAndSuffix = 0;
    OLECHECK(this->get_LastFirstAndSuffix((BSTR*)&LastFirstAndSuffix));
    return LastFirstAndSuffix;
  }

  BSTR __fastcall get_LastFirstNoSpace(void)
  {
    BSTR LastFirstNoSpace = 0;
    OLECHECK(this->get_LastFirstNoSpace((BSTR*)&LastFirstNoSpace));
    return LastFirstNoSpace;
  }

  BSTR __fastcall get_LastFirstNoSpaceCompany(void)
  {
    BSTR LastFirstNoSpaceCompany = 0;
    OLECHECK(this->get_LastFirstNoSpaceCompany((BSTR*)&LastFirstNoSpaceCompany));
    return LastFirstNoSpaceCompany;
  }

  BSTR __fastcall get_LastFirstSpaceOnly(void)
  {
    BSTR LastFirstSpaceOnly = 0;
    OLECHECK(this->get_LastFirstSpaceOnly((BSTR*)&LastFirstSpaceOnly));
    return LastFirstSpaceOnly;
  }

  BSTR __fastcall get_LastFirstSpaceOnlyCompany(void)
  {
    BSTR LastFirstSpaceOnlyCompany = 0;
    OLECHECK(this->get_LastFirstSpaceOnlyCompany((BSTR*)&LastFirstSpaceOnlyCompany));
    return LastFirstSpaceOnlyCompany;
  }

  BSTR __fastcall get_LastName(void)
  {
    BSTR LastName = 0;
    OLECHECK(this->get_LastName((BSTR*)&LastName));
    return LastName;
  }

  BSTR __fastcall get_LastNameAndFirstName(void)
  {
    BSTR LastNameAndFirstName = 0;
    OLECHECK(this->get_LastNameAndFirstName((BSTR*)&LastNameAndFirstName));
    return LastNameAndFirstName;
  }

  BSTR __fastcall get_MailingAddress(void)
  {
    BSTR MailingAddress = 0;
    OLECHECK(this->get_MailingAddress((BSTR*)&MailingAddress));
    return MailingAddress;
  }

  BSTR __fastcall get_MailingAddressCity(void)
  {
    BSTR MailingAddressCity = 0;
    OLECHECK(this->get_MailingAddressCity((BSTR*)&MailingAddressCity));
    return MailingAddressCity;
  }

  BSTR __fastcall get_MailingAddressCountry(void)
  {
    BSTR MailingAddressCountry = 0;
    OLECHECK(this->get_MailingAddressCountry((BSTR*)&MailingAddressCountry));
    return MailingAddressCountry;
  }

  BSTR __fastcall get_MailingAddressPostalCode(void)
  {
    BSTR MailingAddressPostalCode = 0;
    OLECHECK(this->get_MailingAddressPostalCode((BSTR*)&MailingAddressPostalCode));
    return MailingAddressPostalCode;
  }

  BSTR __fastcall get_MailingAddressPostOfficeBox(void)
  {
    BSTR MailingAddressPostOfficeBox = 0;
    OLECHECK(this->get_MailingAddressPostOfficeBox((BSTR*)&MailingAddressPostOfficeBox));
    return MailingAddressPostOfficeBox;
  }

  BSTR __fastcall get_MailingAddressState(void)
  {
    BSTR MailingAddressState = 0;
    OLECHECK(this->get_MailingAddressState((BSTR*)&MailingAddressState));
    return MailingAddressState;
  }

  BSTR __fastcall get_MailingAddressStreet(void)
  {
    BSTR MailingAddressStreet = 0;
    OLECHECK(this->get_MailingAddressStreet((BSTR*)&MailingAddressStreet));
    return MailingAddressStreet;
  }

  BSTR __fastcall get_ManagerName(void)
  {
    BSTR ManagerName = 0;
    OLECHECK(this->get_ManagerName((BSTR*)&ManagerName));
    return ManagerName;
  }

  BSTR __fastcall get_MiddleName(void)
  {
    BSTR MiddleName = 0;
    OLECHECK(this->get_MiddleName((BSTR*)&MiddleName));
    return MiddleName;
  }

  BSTR __fastcall get_MobileTelephoneNumber(void)
  {
    BSTR MobileTelephoneNumber = 0;
    OLECHECK(this->get_MobileTelephoneNumber((BSTR*)&MobileTelephoneNumber));
    return MobileTelephoneNumber;
  }

  BSTR __fastcall get_NetMeetingAlias(void)
  {
    BSTR NetMeetingAlias = 0;
    OLECHECK(this->get_NetMeetingAlias((BSTR*)&NetMeetingAlias));
    return NetMeetingAlias;
  }

  BSTR __fastcall get_NetMeetingServer(void)
  {
    BSTR NetMeetingServer = 0;
    OLECHECK(this->get_NetMeetingServer((BSTR*)&NetMeetingServer));
    return NetMeetingServer;
  }

  BSTR __fastcall get_NickName(void)
  {
    BSTR NickName = 0;
    OLECHECK(this->get_NickName((BSTR*)&NickName));
    return NickName;
  }

  BSTR __fastcall get_OfficeLocation(void)
  {
    BSTR OfficeLocation = 0;
    OLECHECK(this->get_OfficeLocation((BSTR*)&OfficeLocation));
    return OfficeLocation;
  }

  BSTR __fastcall get_OrganizationalIDNumber(void)
  {
    BSTR OrganizationalIDNumber = 0;
    OLECHECK(this->get_OrganizationalIDNumber((BSTR*)&OrganizationalIDNumber));
    return OrganizationalIDNumber;
  }

  BSTR __fastcall get_OtherAddress(void)
  {
    BSTR OtherAddress = 0;
    OLECHECK(this->get_OtherAddress((BSTR*)&OtherAddress));
    return OtherAddress;
  }

  BSTR __fastcall get_OtherAddressCity(void)
  {
    BSTR OtherAddressCity = 0;
    OLECHECK(this->get_OtherAddressCity((BSTR*)&OtherAddressCity));
    return OtherAddressCity;
  }

  BSTR __fastcall get_OtherAddressCountry(void)
  {
    BSTR OtherAddressCountry = 0;
    OLECHECK(this->get_OtherAddressCountry((BSTR*)&OtherAddressCountry));
    return OtherAddressCountry;
  }

  BSTR __fastcall get_OtherAddressPostalCode(void)
  {
    BSTR OtherAddressPostalCode = 0;
    OLECHECK(this->get_OtherAddressPostalCode((BSTR*)&OtherAddressPostalCode));
    return OtherAddressPostalCode;
  }

  BSTR __fastcall get_OtherAddressPostOfficeBox(void)
  {
    BSTR OtherAddressPostOfficeBox = 0;
    OLECHECK(this->get_OtherAddressPostOfficeBox((BSTR*)&OtherAddressPostOfficeBox));
    return OtherAddressPostOfficeBox;
  }

  BSTR __fastcall get_OtherAddressState(void)
  {
    BSTR OtherAddressState = 0;
    OLECHECK(this->get_OtherAddressState((BSTR*)&OtherAddressState));
    return OtherAddressState;
  }

  BSTR __fastcall get_OtherAddressStreet(void)
  {
    BSTR OtherAddressStreet = 0;
    OLECHECK(this->get_OtherAddressStreet((BSTR*)&OtherAddressStreet));
    return OtherAddressStreet;
  }

  BSTR __fastcall get_OtherFaxNumber(void)
  {
    BSTR OtherFaxNumber = 0;
    OLECHECK(this->get_OtherFaxNumber((BSTR*)&OtherFaxNumber));
    return OtherFaxNumber;
  }

  BSTR __fastcall get_OtherTelephoneNumber(void)
  {
    BSTR OtherTelephoneNumber = 0;
    OLECHECK(this->get_OtherTelephoneNumber((BSTR*)&OtherTelephoneNumber));
    return OtherTelephoneNumber;
  }

  BSTR __fastcall get_PagerNumber(void)
  {
    BSTR PagerNumber = 0;
    OLECHECK(this->get_PagerNumber((BSTR*)&PagerNumber));
    return PagerNumber;
  }

  BSTR __fastcall get_PersonalHomePage(void)
  {
    BSTR PersonalHomePage = 0;
    OLECHECK(this->get_PersonalHomePage((BSTR*)&PersonalHomePage));
    return PersonalHomePage;
  }

  BSTR __fastcall get_PrimaryTelephoneNumber(void)
  {
    BSTR PrimaryTelephoneNumber = 0;
    OLECHECK(this->get_PrimaryTelephoneNumber((BSTR*)&PrimaryTelephoneNumber));
    return PrimaryTelephoneNumber;
  }

  BSTR __fastcall get_Profession(void)
  {
    BSTR Profession = 0;
    OLECHECK(this->get_Profession((BSTR*)&Profession));
    return Profession;
  }

  BSTR __fastcall get_RadioTelephoneNumber(void)
  {
    BSTR RadioTelephoneNumber = 0;
    OLECHECK(this->get_RadioTelephoneNumber((BSTR*)&RadioTelephoneNumber));
    return RadioTelephoneNumber;
  }

  BSTR __fastcall get_ReferredBy(void)
  {
    BSTR ReferredBy = 0;
    OLECHECK(this->get_ReferredBy((BSTR*)&ReferredBy));
    return ReferredBy;
  }

  Outlook_xp::OlMailingAddress __fastcall get_SelectedMailingAddress(void)
  {
    Outlook_xp::OlMailingAddress SelectedMailingAddress;
    OLECHECK(this->get_SelectedMailingAddress((Outlook_xp::OlMailingAddress*)&SelectedMailingAddress));
    return SelectedMailingAddress;
  }

  BSTR __fastcall get_Spouse(void)
  {
    BSTR Spouse = 0;
    OLECHECK(this->get_Spouse((BSTR*)&Spouse));
    return Spouse;
  }

  BSTR __fastcall get_Suffix(void)
  {
    BSTR Suffix = 0;
    OLECHECK(this->get_Suffix((BSTR*)&Suffix));
    return Suffix;
  }

  BSTR __fastcall get_TelexNumber(void)
  {
    BSTR TelexNumber = 0;
    OLECHECK(this->get_TelexNumber((BSTR*)&TelexNumber));
    return TelexNumber;
  }

  BSTR __fastcall get_Title(void)
  {
    BSTR Title = 0;
    OLECHECK(this->get_Title((BSTR*)&Title));
    return Title;
  }

  BSTR __fastcall get_TTYTDDTelephoneNumber(void)
  {
    BSTR TTYTDDTelephoneNumber = 0;
    OLECHECK(this->get_TTYTDDTelephoneNumber((BSTR*)&TTYTDDTelephoneNumber));
    return TTYTDDTelephoneNumber;
  }

  BSTR __fastcall get_User1(void)
  {
    BSTR User1 = 0;
    OLECHECK(this->get_User1((BSTR*)&User1));
    return User1;
  }

  BSTR __fastcall get_User2(void)
  {
    BSTR User2 = 0;
    OLECHECK(this->get_User2((BSTR*)&User2));
    return User2;
  }

  BSTR __fastcall get_User3(void)
  {
    BSTR User3 = 0;
    OLECHECK(this->get_User3((BSTR*)&User3));
    return User3;
  }

  BSTR __fastcall get_User4(void)
  {
    BSTR User4 = 0;
    OLECHECK(this->get_User4((BSTR*)&User4));
    return User4;
  }

  BSTR __fastcall get_UserCertificate(void)
  {
    BSTR UserCertificate = 0;
    OLECHECK(this->get_UserCertificate((BSTR*)&UserCertificate));
    return UserCertificate;
  }

  BSTR __fastcall get_WebPage(void)
  {
    BSTR WebPage = 0;
    OLECHECK(this->get_WebPage((BSTR*)&WebPage));
    return WebPage;
  }

  BSTR __fastcall get_YomiCompanyName(void)
  {
    BSTR YomiCompanyName = 0;
    OLECHECK(this->get_YomiCompanyName((BSTR*)&YomiCompanyName));
    return YomiCompanyName;
  }

  BSTR __fastcall get_YomiFirstName(void)
  {
    BSTR YomiFirstName = 0;
    OLECHECK(this->get_YomiFirstName((BSTR*)&YomiFirstName));
    return YomiFirstName;
  }

  BSTR __fastcall get_YomiLastName(void)
  {
    BSTR YomiLastName = 0;
    OLECHECK(this->get_YomiLastName((BSTR*)&YomiLastName));
    return YomiLastName;
  }

  Outlook_xp::MailItem* __fastcall ForwardAsVcard(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->ForwardAsVcard((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  BSTR __fastcall get_LastFirstNoSpaceAndSuffix(void)
  {
    BSTR LastFirstNoSpaceAndSuffix = 0;
    OLECHECK(this->get_LastFirstNoSpaceAndSuffix((BSTR*)&LastFirstNoSpaceAndSuffix));
    return LastFirstNoSpaceAndSuffix;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  BSTR __fastcall get_IMAddress(void)
  {
    BSTR IMAddress = 0;
    OLECHECK(this->get_IMAddress((BSTR*)&IMAddress));
    return IMAddress;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            Account = {read = get_Account, write = set_Account};
  __property   DATE            Anniversary = {read = get_Anniversary, write = set_Anniversary};
  __property   BSTR            AssistantName = {read = get_AssistantName, write = set_AssistantName};
  __property   BSTR            AssistantTelephoneNumber = {read = get_AssistantTelephoneNumber, write = set_AssistantTelephoneNumber};
  __property   DATE            Birthday = {read = get_Birthday, write = set_Birthday};
  __property   BSTR            Business2TelephoneNumber = {read = get_Business2TelephoneNumber, write = set_Business2TelephoneNumber};
  __property   BSTR            BusinessAddress = {read = get_BusinessAddress, write = set_BusinessAddress};
  __property   BSTR            BusinessAddressCity = {read = get_BusinessAddressCity, write = set_BusinessAddressCity};
  __property   BSTR            BusinessAddressCountry = {read = get_BusinessAddressCountry, write = set_BusinessAddressCountry};
  __property   BSTR            BusinessAddressPostalCode = {read = get_BusinessAddressPostalCode, write = set_BusinessAddressPostalCode};
  __property   BSTR            BusinessAddressPostOfficeBox = {read = get_BusinessAddressPostOfficeBox, write = set_BusinessAddressPostOfficeBox};
  __property   BSTR            BusinessAddressState = {read = get_BusinessAddressState, write = set_BusinessAddressState};
  __property   BSTR            BusinessAddressStreet = {read = get_BusinessAddressStreet, write = set_BusinessAddressStreet};
  __property   BSTR            BusinessFaxNumber = {read = get_BusinessFaxNumber, write = set_BusinessFaxNumber};
  __property   BSTR            BusinessHomePage = {read = get_BusinessHomePage, write = set_BusinessHomePage};
  __property   BSTR            BusinessTelephoneNumber = {read = get_BusinessTelephoneNumber, write = set_BusinessTelephoneNumber};
  __property   BSTR            CallbackTelephoneNumber = {read = get_CallbackTelephoneNumber, write = set_CallbackTelephoneNumber};
  __property   BSTR            CarTelephoneNumber = {read = get_CarTelephoneNumber, write = set_CarTelephoneNumber};
  __property   BSTR            Children = {read = get_Children, write = set_Children};
  __property   BSTR            CompanyAndFullName = {read = get_CompanyAndFullName};
  __property   BSTR            CompanyLastFirstNoSpace = {read = get_CompanyLastFirstNoSpace};
  __property   BSTR            CompanyLastFirstSpaceOnly = {read = get_CompanyLastFirstSpaceOnly};
  __property   BSTR            CompanyMainTelephoneNumber = {read = get_CompanyMainTelephoneNumber, write = set_CompanyMainTelephoneNumber};
  __property   BSTR            CompanyName = {read = get_CompanyName, write = set_CompanyName};
  __property   BSTR            ComputerNetworkName = {read = get_ComputerNetworkName, write = set_ComputerNetworkName};
  __property   BSTR            CustomerID = {read = get_CustomerID, write = set_CustomerID};
  __property   BSTR            Department = {read = get_Department, write = set_Department};
  __property   BSTR            Email1Address = {read = get_Email1Address, write = set_Email1Address};
  __property   BSTR            Email1AddressType = {read = get_Email1AddressType, write = set_Email1AddressType};
  __property   BSTR            Email1DisplayName = {read = get_Email1DisplayName, write = set_Email1DisplayName};
  __property   BSTR            Email1EntryID = {read = get_Email1EntryID};
  __property   BSTR            Email2Address = {read = get_Email2Address, write = set_Email2Address};
  __property   BSTR            Email2AddressType = {read = get_Email2AddressType, write = set_Email2AddressType};
  __property   BSTR            Email2DisplayName = {read = get_Email2DisplayName, write = set_Email2DisplayName};
  __property   BSTR            Email2EntryID = {read = get_Email2EntryID};
  __property   BSTR            Email3Address = {read = get_Email3Address, write = set_Email3Address};
  __property   BSTR            Email3AddressType = {read = get_Email3AddressType, write = set_Email3AddressType};
  __property   BSTR            Email3DisplayName = {read = get_Email3DisplayName, write = set_Email3DisplayName};
  __property   BSTR            Email3EntryID = {read = get_Email3EntryID};
  __property   BSTR            FileAs = {read = get_FileAs, write = set_FileAs};
  __property   BSTR            FirstName = {read = get_FirstName, write = set_FirstName};
  __property   BSTR            FTPSite = {read = get_FTPSite, write = set_FTPSite};
  __property   BSTR            FullName = {read = get_FullName, write = set_FullName};
  __property   BSTR            FullNameAndCompany = {read = get_FullNameAndCompany};
  __property   Outlook_xp::OlGender Gender = {read = get_Gender, write = set_Gender};
  __property   BSTR            GovernmentIDNumber = {read = get_GovernmentIDNumber, write = set_GovernmentIDNumber};
  __property   BSTR            Hobby = {read = get_Hobby, write = set_Hobby};
  __property   BSTR            Home2TelephoneNumber = {read = get_Home2TelephoneNumber, write = set_Home2TelephoneNumber};
  __property   BSTR            HomeAddress = {read = get_HomeAddress, write = set_HomeAddress};
  __property   BSTR            HomeAddressCity = {read = get_HomeAddressCity, write = set_HomeAddressCity};
  __property   BSTR            HomeAddressCountry = {read = get_HomeAddressCountry, write = set_HomeAddressCountry};
  __property   BSTR            HomeAddressPostalCode = {read = get_HomeAddressPostalCode, write = set_HomeAddressPostalCode};
  __property   BSTR            HomeAddressPostOfficeBox = {read = get_HomeAddressPostOfficeBox, write = set_HomeAddressPostOfficeBox};
  __property   BSTR            HomeAddressState = {read = get_HomeAddressState, write = set_HomeAddressState};
  __property   BSTR            HomeAddressStreet = {read = get_HomeAddressStreet, write = set_HomeAddressStreet};
  __property   BSTR            HomeFaxNumber = {read = get_HomeFaxNumber, write = set_HomeFaxNumber};
  __property   BSTR            HomeTelephoneNumber = {read = get_HomeTelephoneNumber, write = set_HomeTelephoneNumber};
  __property   BSTR            Initials = {read = get_Initials, write = set_Initials};
  __property   BSTR            InternetFreeBusyAddress = {read = get_InternetFreeBusyAddress, write = set_InternetFreeBusyAddress};
  __property   BSTR            ISDNNumber = {read = get_ISDNNumber, write = set_ISDNNumber};
  __property   BSTR            JobTitle = {read = get_JobTitle, write = set_JobTitle};
  __property   VARIANT_BOOL    Journal = {read = get_Journal, write = set_Journal};
  __property   BSTR            Language = {read = get_Language, write = set_Language};
  __property   BSTR            LastFirstAndSuffix = {read = get_LastFirstAndSuffix};
  __property   BSTR            LastFirstNoSpace = {read = get_LastFirstNoSpace};
  __property   BSTR            LastFirstNoSpaceCompany = {read = get_LastFirstNoSpaceCompany};
  __property   BSTR            LastFirstSpaceOnly = {read = get_LastFirstSpaceOnly};
  __property   BSTR            LastFirstSpaceOnlyCompany = {read = get_LastFirstSpaceOnlyCompany};
  __property   BSTR            LastName = {read = get_LastName, write = set_LastName};
  __property   BSTR            LastNameAndFirstName = {read = get_LastNameAndFirstName};
  __property   BSTR            MailingAddress = {read = get_MailingAddress, write = set_MailingAddress};
  __property   BSTR            MailingAddressCity = {read = get_MailingAddressCity, write = set_MailingAddressCity};
  __property   BSTR            MailingAddressCountry = {read = get_MailingAddressCountry, write = set_MailingAddressCountry};
  __property   BSTR            MailingAddressPostalCode = {read = get_MailingAddressPostalCode, write = set_MailingAddressPostalCode};
  __property   BSTR            MailingAddressPostOfficeBox = {read = get_MailingAddressPostOfficeBox, write = set_MailingAddressPostOfficeBox};
  __property   BSTR            MailingAddressState = {read = get_MailingAddressState, write = set_MailingAddressState};
  __property   BSTR            MailingAddressStreet = {read = get_MailingAddressStreet, write = set_MailingAddressStreet};
  __property   BSTR            ManagerName = {read = get_ManagerName, write = set_ManagerName};
  __property   BSTR            MiddleName = {read = get_MiddleName, write = set_MiddleName};
  __property   BSTR            MobileTelephoneNumber = {read = get_MobileTelephoneNumber, write = set_MobileTelephoneNumber};
  __property   BSTR            NetMeetingAlias = {read = get_NetMeetingAlias, write = set_NetMeetingAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   BSTR            NickName = {read = get_NickName, write = set_NickName};
  __property   BSTR            OfficeLocation = {read = get_OfficeLocation, write = set_OfficeLocation};
  __property   BSTR            OrganizationalIDNumber = {read = get_OrganizationalIDNumber, write = set_OrganizationalIDNumber};
  __property   BSTR            OtherAddress = {read = get_OtherAddress, write = set_OtherAddress};
  __property   BSTR            OtherAddressCity = {read = get_OtherAddressCity, write = set_OtherAddressCity};
  __property   BSTR            OtherAddressCountry = {read = get_OtherAddressCountry, write = set_OtherAddressCountry};
  __property   BSTR            OtherAddressPostalCode = {read = get_OtherAddressPostalCode, write = set_OtherAddressPostalCode};
  __property   BSTR            OtherAddressPostOfficeBox = {read = get_OtherAddressPostOfficeBox, write = set_OtherAddressPostOfficeBox};
  __property   BSTR            OtherAddressState = {read = get_OtherAddressState, write = set_OtherAddressState};
  __property   BSTR            OtherAddressStreet = {read = get_OtherAddressStreet, write = set_OtherAddressStreet};
  __property   BSTR            OtherFaxNumber = {read = get_OtherFaxNumber, write = set_OtherFaxNumber};
  __property   BSTR            OtherTelephoneNumber = {read = get_OtherTelephoneNumber, write = set_OtherTelephoneNumber};
  __property   BSTR            PagerNumber = {read = get_PagerNumber, write = set_PagerNumber};
  __property   BSTR            PersonalHomePage = {read = get_PersonalHomePage, write = set_PersonalHomePage};
  __property   BSTR            PrimaryTelephoneNumber = {read = get_PrimaryTelephoneNumber, write = set_PrimaryTelephoneNumber};
  __property   BSTR            Profession = {read = get_Profession, write = set_Profession};
  __property   BSTR            RadioTelephoneNumber = {read = get_RadioTelephoneNumber, write = set_RadioTelephoneNumber};
  __property   BSTR            ReferredBy = {read = get_ReferredBy, write = set_ReferredBy};
  __property   Outlook_xp::OlMailingAddress SelectedMailingAddress = {read = get_SelectedMailingAddress, write = set_SelectedMailingAddress};
  __property   BSTR            Spouse = {read = get_Spouse, write = set_Spouse};
  __property   BSTR            Suffix = {read = get_Suffix, write = set_Suffix};
  __property   BSTR            TelexNumber = {read = get_TelexNumber, write = set_TelexNumber};
  __property   BSTR            Title = {read = get_Title, write = set_Title};
  __property   BSTR            TTYTDDTelephoneNumber = {read = get_TTYTDDTelephoneNumber, write = set_TTYTDDTelephoneNumber};
  __property   BSTR            User1 = {read = get_User1, write = set_User1};
  __property   BSTR            User2 = {read = get_User2, write = set_User2};
  __property   BSTR            User3 = {read = get_User3, write = set_User3};
  __property   BSTR            User4 = {read = get_User4, write = set_User4};
  __property   BSTR            UserCertificate = {read = get_UserCertificate, write = set_UserCertificate};
  __property   BSTR            WebPage = {read = get_WebPage, write = set_WebPage};
  __property   BSTR            YomiCompanyName = {read = get_YomiCompanyName, write = set_YomiCompanyName};
  __property   BSTR            YomiFirstName = {read = get_YomiFirstName, write = set_YomiFirstName};
  __property   BSTR            YomiLastName = {read = get_YomiLastName, write = set_YomiLastName};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   BSTR            LastFirstNoSpaceAndSuffix = {read = get_LastFirstNoSpaceAndSuffix};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   BSTR            IMAddress = {read = get_IMAddress, write = set_IMAddress};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _DistListItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063081-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DistListItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_DLName(BSTR* DLName/*[out,retval]*/) = 0; // [32851]
  virtual HRESULT STDMETHODCALLTYPE set_DLName(BSTR DLName/*[in]*/) = 0; // [32851]
  virtual HRESULT STDMETHODCALLTYPE get_MemberCount(long* MemberCount/*[out,retval]*/) = 0; // [32843]
  virtual HRESULT STDMETHODCALLTYPE get_CheckSum(long* CheckSum/*[out,retval]*/) = 0; // [32844]
  virtual HRESULT STDMETHODCALLTYPE get_Members(VARIANT* Members/*[out,retval]*/) = 0; // [32853]
  virtual HRESULT STDMETHODCALLTYPE set_Members(VARIANT Members/*[in]*/) = 0; // [32853]
  virtual HRESULT STDMETHODCALLTYPE get_OneOffMembers(VARIANT* OneOffMembers/*[out,retval]*/) = 0; // [32852]
  virtual HRESULT STDMETHODCALLTYPE set_OneOffMembers(VARIANT OneOffMembers/*[in]*/) = 0; // [32852]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE AddMembers(Outlook_xp::Recipients* Recipients/*[in]*/) = 0; // [63744]
  virtual HRESULT STDMETHODCALLTYPE RemoveMembers(Outlook_xp::Recipients* Recipients/*[in]*/) = 0; // [63745]
  virtual HRESULT STDMETHODCALLTYPE GetMember(long Index/*[in]*/, 
                                              Outlook_xp::Recipient** Recipient/*[out,retval]*/) = 0; // [63749]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE AddMember(Outlook_xp::Recipient* Recipient/*[in]*/) = 0; // [64140]
  virtual HRESULT STDMETHODCALLTYPE RemoveMember(Outlook_xp::Recipient* Recipient/*[in]*/) = 0; // [64141]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  BSTR __fastcall get_DLName(void)
  {
    BSTR DLName = 0;
    OLECHECK(this->get_DLName((BSTR*)&DLName));
    return DLName;
  }

  long __fastcall get_MemberCount(void)
  {
    long MemberCount;
    OLECHECK(this->get_MemberCount((long*)&MemberCount));
    return MemberCount;
  }

  long __fastcall get_CheckSum(void)
  {
    long CheckSum;
    OLECHECK(this->get_CheckSum((long*)&CheckSum));
    return CheckSum;
  }

  VARIANT __fastcall get_Members(void)
  {
    VARIANT Members;
    OLECHECK(this->get_Members((VARIANT*)&Members));
    return Members;
  }

  VARIANT __fastcall get_OneOffMembers(void)
  {
    VARIANT OneOffMembers;
    OLECHECK(this->get_OneOffMembers((VARIANT*)&OneOffMembers));
    return OneOffMembers;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::Recipient* __fastcall GetMember(long Index/*[in]*/)
  {
    Outlook_xp::Recipient* Recipient = 0;
    OLECHECK(this->GetMember(Index, (Outlook_xp::Recipient**)&Recipient));
    return Recipient;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            DLName = {read = get_DLName, write = set_DLName};
  __property   long            MemberCount = {read = get_MemberCount};
  __property   long            CheckSum = {read = get_CheckSum};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _DocumentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063020-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DocumentItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ExplorersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063078-0000-0000-C000-000000000046}
// *********************************************************************//
interface ExplorersEvents : public TDispWrapper<IDispatch>
{
  void __fastcall NewExplorer(Outlook_xp::_Explorer* Explorer/*[in]*/)
  {
    _TDispID _dispid(/* NewExplorer */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Explorer*)Explorer /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: FoldersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063076-0000-0000-C000-000000000046}
// *********************************************************************//
interface FoldersEvents : public TDispWrapper<IDispatch>
{
  void __fastcall FolderAdd(Outlook_xp::MAPIFolder* Folder/*[in]*/)
  {
    _TDispID _dispid(/* FolderAdd */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall FolderChange(Outlook_xp::MAPIFolder* Folder/*[in]*/)
  {
    _TDispID _dispid(/* FolderChange */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall FolderRemove()
  {
    _TDispID _dispid(/* FolderRemove */ DISPID(61443));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: InspectorsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063079-0000-0000-C000-000000000046}
// *********************************************************************//
interface InspectorsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall NewInspector(Outlook_xp::_Inspector* Inspector/*[in]*/)
  {
    _TDispID _dispid(/* NewInspector */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Inspector*)Inspector /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: ItemsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063077-0000-0000-C000-000000000046}
// *********************************************************************//
interface ItemsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall ItemAdd(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* ItemAdd */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ItemChange(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* ItemChange */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ItemRemove()
  {
    _TDispID _dispid(/* ItemRemove */ DISPID(61443));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: _JournalItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063022-0000-0000-C000-000000000046}
// *********************************************************************//
interface _JournalItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_ContactNames(BSTR* ContactNames/*[out,retval]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE set_ContactNames(BSTR ContactNames/*[in]*/) = 0; // [3588]
  virtual HRESULT STDMETHODCALLTYPE get_DocPosted(VARIANT_BOOL* DocPosted/*[out,retval]*/) = 0; // [34577]
  virtual HRESULT STDMETHODCALLTYPE set_DocPosted(VARIANT_BOOL DocPosted/*[in]*/) = 0; // [34577]
  virtual HRESULT STDMETHODCALLTYPE get_DocPrinted(VARIANT_BOOL* DocPrinted/*[out,retval]*/) = 0; // [34574]
  virtual HRESULT STDMETHODCALLTYPE set_DocPrinted(VARIANT_BOOL DocPrinted/*[in]*/) = 0; // [34574]
  virtual HRESULT STDMETHODCALLTYPE get_DocRouted(VARIANT_BOOL* DocRouted/*[out,retval]*/) = 0; // [34576]
  virtual HRESULT STDMETHODCALLTYPE set_DocRouted(VARIANT_BOOL DocRouted/*[in]*/) = 0; // [34576]
  virtual HRESULT STDMETHODCALLTYPE get_DocSaved(VARIANT_BOOL* DocSaved/*[out,retval]*/) = 0; // [34575]
  virtual HRESULT STDMETHODCALLTYPE set_DocSaved(VARIANT_BOOL DocSaved/*[in]*/) = 0; // [34575]
  virtual HRESULT STDMETHODCALLTYPE get_Duration(long* Duration/*[out,retval]*/) = 0; // [34567]
  virtual HRESULT STDMETHODCALLTYPE set_Duration(long Duration/*[in]*/) = 0; // [34567]
  virtual HRESULT STDMETHODCALLTYPE get_End(DATE* End/*[out,retval]*/) = 0; // [34568]
  virtual HRESULT STDMETHODCALLTYPE set_End(DATE End/*[in]*/) = 0; // [34568]
  virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR* Type/*[out,retval]*/) = 0; // [34560]
  virtual HRESULT STDMETHODCALLTYPE set_Type(BSTR Type/*[in]*/) = 0; // [34560]
  virtual HRESULT STDMETHODCALLTYPE get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/) = 0; // [63508]
  virtual HRESULT STDMETHODCALLTYPE get_Start(DATE* Start/*[out,retval]*/) = 0; // [34566]
  virtual HRESULT STDMETHODCALLTYPE set_Start(DATE Start/*[in]*/) = 0; // [34566]
  virtual HRESULT STDMETHODCALLTYPE Forward(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63507]
  virtual HRESULT STDMETHODCALLTYPE Reply(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63504]
  virtual HRESULT STDMETHODCALLTYPE ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63505]
  virtual HRESULT STDMETHODCALLTYPE StartTimer(void) = 0; // [63269]
  virtual HRESULT STDMETHODCALLTYPE StopTimer(void) = 0; // [63270]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  BSTR __fastcall get_ContactNames(void)
  {
    BSTR ContactNames = 0;
    OLECHECK(this->get_ContactNames((BSTR*)&ContactNames));
    return ContactNames;
  }

  VARIANT_BOOL __fastcall get_DocPosted(void)
  {
    VARIANT_BOOL DocPosted;
    OLECHECK(this->get_DocPosted((VARIANT_BOOL*)&DocPosted));
    return DocPosted;
  }

  VARIANT_BOOL __fastcall get_DocPrinted(void)
  {
    VARIANT_BOOL DocPrinted;
    OLECHECK(this->get_DocPrinted((VARIANT_BOOL*)&DocPrinted));
    return DocPrinted;
  }

  VARIANT_BOOL __fastcall get_DocRouted(void)
  {
    VARIANT_BOOL DocRouted;
    OLECHECK(this->get_DocRouted((VARIANT_BOOL*)&DocRouted));
    return DocRouted;
  }

  VARIANT_BOOL __fastcall get_DocSaved(void)
  {
    VARIANT_BOOL DocSaved;
    OLECHECK(this->get_DocSaved((VARIANT_BOOL*)&DocSaved));
    return DocSaved;
  }

  long __fastcall get_Duration(void)
  {
    long Duration;
    OLECHECK(this->get_Duration((long*)&Duration));
    return Duration;
  }

  DATE __fastcall get_End(void)
  {
    DATE End;
    OLECHECK(this->get_End((DATE*)&End));
    return End;
  }

  BSTR __fastcall get_Type(void)
  {
    BSTR Type = 0;
    OLECHECK(this->get_Type((BSTR*)&Type));
    return Type;
  }

  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void)
  {
    Outlook_xp::RecipientsPtr Recipients;
    OLECHECK(this->get_Recipients(&Recipients));
    return Recipients;
  }

  DATE __fastcall get_Start(void)
  {
    DATE Start;
    OLECHECK(this->get_Start((DATE*)&Start));
    return Start;
  }

  Outlook_xp::MailItem* __fastcall Forward(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall Reply(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall ReplyAll(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   VARIANT_BOOL    DocPosted = {read = get_DocPosted, write = set_DocPosted};
  __property   VARIANT_BOOL    DocPrinted = {read = get_DocPrinted, write = set_DocPrinted};
  __property   VARIANT_BOOL    DocRouted = {read = get_DocRouted, write = set_DocRouted};
  __property   VARIANT_BOOL    DocSaved = {read = get_DocSaved, write = set_DocSaved};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   BSTR            Type = {read = get_Type, write = set_Type};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: NameSpaceEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006308C-0000-0000-C000-000000000046}
// *********************************************************************//
interface NameSpaceEvents : public TDispWrapper<IDispatch>
{
  void __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/, 
                                  Outlook_xp::MAPIFolder* Folder/*[in]*/)
  {
    _TDispID _dispid(/* OptionsPagesAdd */ DISPID(61445));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
    _args[2] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: _NoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063025-0000-0000-C000-000000000046}
// *********************************************************************//
interface _NoteItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Color(Outlook_xp::OlNoteColor* Color/*[out,retval]*/) = 0; // [35584]
  virtual HRESULT STDMETHODCALLTYPE set_Color(Outlook_xp::OlNoteColor Color/*[in]*/) = 0; // [35584]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0; // [35587]
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0; // [35587]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_Left(long* Left/*[out,retval]*/) = 0; // [35588]
  virtual HRESULT STDMETHODCALLTYPE set_Left(long Left/*[in]*/) = 0; // [35588]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [63392]
  virtual HRESULT STDMETHODCALLTYPE get_Top(long* Top/*[out,retval]*/) = 0; // [35589]
  virtual HRESULT STDMETHODCALLTYPE set_Top(long Top/*[in]*/) = 0; // [35589]
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0; // [35586]
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0; // [35586]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  Outlook_xp::OlNoteColor __fastcall get_Color(void)
  {
    Outlook_xp::OlNoteColor Color;
    OLECHECK(this->get_Color((Outlook_xp::OlNoteColor*)&Color));
    return Color;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  long __fastcall get_Left(void)
  {
    long Left;
    OLECHECK(this->get_Left((long*)&Left));
    return Left;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  long __fastcall get_Top(void)
  {
    long Top;
    OLECHECK(this->get_Top((long*)&Top));
    return Top;
  }

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   Outlook_xp::OlNoteColor Color = {read = get_Color, write = set_Color};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: OutlookBarGroup
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063073-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarGroup  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_Shortcuts(Outlook_xp::_OutlookBarShortcuts** Shortcuts/*[out,retval]*/) = 0; // [8450]
  virtual HRESULT STDMETHODCALLTYPE get_ViewType(Outlook_xp::OlOutlookBarViewType* ViewType/*[out,retval]*/) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE set_ViewType(Outlook_xp::OlOutlookBarViewType ViewType/*[in]*/) = 0; // [8451]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  Outlook_xp::_OutlookBarShortcutsPtr __fastcall get_Shortcuts(void)
  {
    Outlook_xp::_OutlookBarShortcutsPtr Shortcuts;
    OLECHECK(this->get_Shortcuts(&Shortcuts));
    return Shortcuts;
  }

  Outlook_xp::OlOutlookBarViewType __fastcall get_ViewType(void)
  {
    Outlook_xp::OlOutlookBarViewType ViewType;
    OLECHECK(this->get_ViewType((Outlook_xp::OlOutlookBarViewType*)&ViewType));
    return ViewType;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Outlook_xp::_OutlookBarShortcutsPtr Shortcuts = {read = get_Shortcuts};
  __property   Outlook_xp::OlOutlookBarViewType ViewType = {read = get_ViewType, write = set_ViewType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _OutlookBarShortcuts
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063074-0000-0000-C000-000000000046}
// *********************************************************************//
interface _OutlookBarShortcuts  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::OutlookBarShortcut** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                        VARIANT Index/*[in,opt]*/, 
                                        Outlook_xp::OutlookBarShortcut** Shortcut/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::OutlookBarShortcut* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::OutlookBarShortcut* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::OutlookBarShortcut**)&Item));
    return Item;
  }

  Outlook_xp::OutlookBarShortcut* __fastcall Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                                 VARIANT Index/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::OutlookBarShortcut* Shortcut = 0;
    OLECHECK(this->Add(Target, Name, Index, (Outlook_xp::OutlookBarShortcut**)&Shortcut));
    return Shortcut;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: OutlookBarShortcut
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063075-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarShortcut  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Name/*[in]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_Target(VARIANT* Target/*[out,retval]*/) = 0; // [8448]
  virtual HRESULT STDMETHODCALLTYPE SetIcon(VARIANT Icon/*[in]*/) = 0; // [64162]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  VARIANT __fastcall get_Target(void)
  {
    VARIANT Target;
    OLECHECK(this->get_Target((VARIANT*)&Target));
    return Target;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name, write = set_Name};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _OutlookBarGroups
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063072-0000-0000-C000-000000000046}
// *********************************************************************//
interface _OutlookBarGroups  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, 
                                         Outlook_xp::OutlookBarGroup** Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/, 
                                        Outlook_xp::OutlookBarGroup** Group/*[out,retval]*/) = 0; // [95]
  virtual HRESULT STDMETHODCALLTYPE Remove(VARIANT Index/*[in]*/) = 0; // [84]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  Outlook_xp::OutlookBarGroup* __fastcall Item(VARIANT Index/*[in]*/)
  {
    Outlook_xp::OutlookBarGroup* Item = 0;
    OLECHECK(this->Item(Index, (Outlook_xp::OutlookBarGroup**)&Item));
    return Item;
  }

  Outlook_xp::OutlookBarGroup* __fastcall Add(BSTR Name/*[in]*/, 
                                              VARIANT Index/*[in,opt]*/= TNoParam())
  {
    Outlook_xp::OutlookBarGroup* Group = 0;
    OLECHECK(this->Add(Name, Index, (Outlook_xp::OutlookBarGroup**)&Group));
    return Group;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: OutlookBarGroupsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307B-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarGroupsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall GroupAdd(Outlook_xp::OutlookBarGroup* NewGroup/*[in]*/)
  {
    _TDispID _dispid(/* GroupAdd */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)NewGroup /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeGroupAdd(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeGroupAdd */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeGroupRemove(Outlook_xp::OutlookBarGroup* Group/*[in]*/, 
                                    VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeGroupRemove */ DISPID(61443));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)Group /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: _OutlookBarPane
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063070-0000-0000-C000-000000000046}
// *********************************************************************//
interface _OutlookBarPane  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Contents(Outlook_xp::OutlookBarStorage** Contents/*[out,retval]*/) = 0; // [8448]
  virtual HRESULT STDMETHODCALLTYPE get_CurrentGroup(Outlook_xp::OutlookBarGroup** CurrentGroup/*[out,retval]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE _set_CurrentGroup(Outlook_xp::OutlookBarGroup* CurrentGroup/*[in]*/) = 0; // [8449]
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* Name/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_Visible(VARIANT_BOOL* Visible/*[out,retval]*/) = 0; // [8451]
  virtual HRESULT STDMETHODCALLTYPE set_Visible(VARIANT_BOOL Visible/*[in]*/) = 0; // [8451]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::OutlookBarStoragePtr __fastcall get_Contents(void)
  {
    Outlook_xp::OutlookBarStoragePtr Contents;
    OLECHECK(this->get_Contents(&Contents));
    return Contents;
  }

  Outlook_xp::OutlookBarGroupPtr __fastcall get_CurrentGroup(void)
  {
    Outlook_xp::OutlookBarGroupPtr CurrentGroup;
    OLECHECK(this->get_CurrentGroup(&CurrentGroup));
    return CurrentGroup;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR Name = 0;
    OLECHECK(this->get_Name((BSTR*)&Name));
    return Name;
  }

  VARIANT_BOOL __fastcall get_Visible(void)
  {
    VARIANT_BOOL Visible;
    OLECHECK(this->get_Visible((VARIANT_BOOL*)&Visible));
    return Visible;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OutlookBarStoragePtr Contents = {read = get_Contents};
  __property   Outlook_xp::OutlookBarGroupPtr CurrentGroup = {read = get_CurrentGroup};
  __property   BSTR            Name = {read = get_Name};
  __property   VARIANT_BOOL    Visible = {read = get_Visible, write = set_Visible};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: OutlookBarStorage
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063071-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarStorage  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Groups(Outlook_xp::_OutlookBarGroups** Groups/*[out,retval]*/) = 0; // [0]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::_OutlookBarGroupsPtr __fastcall get_Groups(void)
  {
    Outlook_xp::_OutlookBarGroupsPtr Groups;
    OLECHECK(this->get_Groups(&Groups));
    return Groups;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::_OutlookBarGroupsPtr Groups = {read = get_Groups};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: OutlookBarPaneEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307A-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarPaneEvents : public TDispWrapper<IDispatch>
{
  void __fastcall BeforeNavigate(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/, 
                                 VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeNavigate */ DISPID(61441));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)Shortcut /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeGroupSwitch(Outlook_xp::OutlookBarGroup* ToGroup/*[in]*/, 
                                    VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeGroupSwitch */ DISPID(61442));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)ToGroup /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: OutlookBarShortcutsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307C-0000-0000-C000-000000000046}
// *********************************************************************//
interface OutlookBarShortcutsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall ShortcutAdd(Outlook_xp::OutlookBarShortcut* NewShortcut/*[in]*/)
  {
    _TDispID _dispid(/* ShortcutAdd */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)NewShortcut /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeShortcutAdd(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeShortcutAdd */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall BeforeShortcutRemove(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/, 
                                       VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeShortcutRemove */ DISPID(61443));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)Shortcut /*[VT_USERDEFINED:1]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: PropertyPage
// Flags:     (4096) Dispatchable
// GUID:      {0006307E-0000-0000-C000-000000000046}
// *********************************************************************//
interface PropertyPage  : public IDispatch
{
public:
   HRESULT STDMETHODCALLTYPE GetPageInfo(BSTR* HelpFile/*[in,out]*/, long* HelpContext/*[in,out]*/); // [8448]
   HRESULT STDMETHODCALLTYPE get_Dirty(VARIANT_BOOL* Dirty/*[out,retval]*/); // [8449]
   HRESULT STDMETHODCALLTYPE Apply(void); // [8450]
};

// *********************************************************************//
// Interface: PropertyPageSite
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006307F-0000-0000-C000-000000000046}
// *********************************************************************//
interface PropertyPageSite  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE OnStatusChange(void) = 0; // [8448]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: Pages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303F-0000-0000-C000-000000000046}
// *********************************************************************//
interface Pages  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0; // [80]
  virtual HRESULT STDMETHODCALLTYPE Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/) = 0; // [81]
  virtual HRESULT STDMETHODCALLTYPE Add(VARIANT Name/*[in,opt]*/, LPDISPATCH* Page/*[out,retval]*/) = 0; // [300]
  virtual HRESULT STDMETHODCALLTYPE Remove(long Index/*[in]*/) = 0; // [301]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  LPDISPATCH __fastcall Item(VARIANT Index/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Item(Index, (LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Add(VARIANT Name/*[in,opt]*/= TNoParam())
  {
    LPDISPATCH Page;
    OLECHECK(this->Add(Name, (LPDISPATCH*)&Page));
    return Page;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _PostItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063024-0000-0000-C000-000000000046}
// *********************************************************************//
interface _PostItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE set_ExpiryTime(DATE ExpiryTime/*[in]*/) = 0; // [21]
  virtual HRESULT STDMETHODCALLTYPE get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/) = 0; // [62468]
  virtual HRESULT STDMETHODCALLTYPE set_HTMLBody(BSTR HTMLBody/*[in]*/) = 0; // [62468]
  virtual HRESULT STDMETHODCALLTYPE get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/) = 0; // [3590]
  virtual HRESULT STDMETHODCALLTYPE get_SenderName(BSTR* SenderName/*[out,retval]*/) = 0; // [3098]
  virtual HRESULT STDMETHODCALLTYPE get_SentOn(DATE* SentOn/*[out,retval]*/) = 0; // [57]
  virtual HRESULT STDMETHODCALLTYPE ClearConversationIndex(void) = 0; // [63522]
  virtual HRESULT STDMETHODCALLTYPE Forward(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63507]
  virtual HRESULT STDMETHODCALLTYPE Post(void) = 0; // [61557]
  virtual HRESULT STDMETHODCALLTYPE Reply(Outlook_xp::MailItem** Item/*[out,retval]*/) = 0; // [63504]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/) = 0; // [64073]
  virtual HRESULT STDMETHODCALLTYPE set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/) = 0; // [64073]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_InternetCodepage(long* InternetCodepage/*[out,retval]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE set_InternetCodepage(long InternetCodepage/*[in]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE SetACLs(VARIANT_BOOL* AllOkay/*[out,retval]*/) = 0; // [64163]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  DATE __fastcall get_ExpiryTime(void)
  {
    DATE ExpiryTime;
    OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
    return ExpiryTime;
  }

  BSTR __fastcall get_HTMLBody(void)
  {
    BSTR HTMLBody = 0;
    OLECHECK(this->get_HTMLBody((BSTR*)&HTMLBody));
    return HTMLBody;
  }

  DATE __fastcall get_ReceivedTime(void)
  {
    DATE ReceivedTime;
    OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
    return ReceivedTime;
  }

  BSTR __fastcall get_SenderName(void)
  {
    BSTR SenderName = 0;
    OLECHECK(this->get_SenderName((BSTR*)&SenderName));
    return SenderName;
  }

  DATE __fastcall get_SentOn(void)
  {
    DATE SentOn;
    OLECHECK(this->get_SentOn((DATE*)&SentOn));
    return SentOn;
  }

  Outlook_xp::MailItem* __fastcall Forward(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::MailItem* __fastcall Reply(void)
  {
    Outlook_xp::MailItem* Item = 0;
    OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void)
  {
    Outlook_xp::OlBodyFormat BodyFormat;
    OLECHECK(this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat));
    return BodyFormat;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  long __fastcall get_InternetCodepage(void)
  {
    long InternetCodepage;
    OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
    return InternetCodepage;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall SetACLs(void)
  {
    VARIANT_BOOL AllOkay;
    OLECHECK(this->SetACLs((VARIANT_BOOL*)&AllOkay));
    return AllOkay;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _RemoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063023-0000-0000-C000-000000000046}
// *********************************************************************//
interface _RemoteItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_HasAttachment(VARIANT_BOOL* HasAttachment/*[out,retval]*/) = 0; // [36615]
  virtual HRESULT STDMETHODCALLTYPE get_RemoteMessageClass(BSTR* RemoteMessageClass/*[out,retval]*/) = 0; // [36610]
  virtual HRESULT STDMETHODCALLTYPE get_TransferSize(long* TransferSize/*[out,retval]*/) = 0; // [36613]
  virtual HRESULT STDMETHODCALLTYPE get_TransferTime(long* TransferTime/*[out,retval]*/) = 0; // [36612]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  VARIANT_BOOL __fastcall get_HasAttachment(void)
  {
    VARIANT_BOOL HasAttachment;
    OLECHECK(this->get_HasAttachment((VARIANT_BOOL*)&HasAttachment));
    return HasAttachment;
  }

  BSTR __fastcall get_RemoteMessageClass(void)
  {
    BSTR RemoteMessageClass = 0;
    OLECHECK(this->get_RemoteMessageClass((BSTR*)&RemoteMessageClass));
    return RemoteMessageClass;
  }

  long __fastcall get_TransferSize(void)
  {
    long TransferSize;
    OLECHECK(this->get_TransferSize((long*)&TransferSize));
    return TransferSize;
  }

  long __fastcall get_TransferTime(void)
  {
    long TransferTime;
    OLECHECK(this->get_TransferTime((long*)&TransferTime));
    return TransferTime;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    HasAttachment = {read = get_HasAttachment};
  __property   BSTR            RemoteMessageClass = {read = get_RemoteMessageClass};
  __property   long            TransferSize = {read = get_TransferSize};
  __property   long            TransferTime = {read = get_TransferTime};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _ReportItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063026-0000-0000-C000-000000000046}
// *********************************************************************//
interface _ReportItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _TaskItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063035-0000-0000-C000-000000000046}
// *********************************************************************//
interface _TaskItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE get_ActualWork(long* ActualWork/*[out,retval]*/) = 0; // [33040]
  virtual HRESULT STDMETHODCALLTYPE set_ActualWork(long ActualWork/*[in]*/) = 0; // [33040]
  virtual HRESULT STDMETHODCALLTYPE get_CardData(BSTR* CardData/*[out,retval]*/) = 0; // [33067]
  virtual HRESULT STDMETHODCALLTYPE set_CardData(BSTR CardData/*[in]*/) = 0; // [33067]
  virtual HRESULT STDMETHODCALLTYPE get_Complete(VARIANT_BOOL* Complete/*[out,retval]*/) = 0; // [33052]
  virtual HRESULT STDMETHODCALLTYPE set_Complete(VARIANT_BOOL Complete/*[in]*/) = 0; // [33052]
  virtual HRESULT STDMETHODCALLTYPE get_Contacts(BSTR* Contacts/*[out,retval]*/) = 0; // [34106]
  virtual HRESULT STDMETHODCALLTYPE set_Contacts(BSTR Contacts/*[in]*/) = 0; // [34106]
  virtual HRESULT STDMETHODCALLTYPE get_ContactNames(BSTR* ContactNames/*[out,retval]*/) = 0; // [34108]
  virtual HRESULT STDMETHODCALLTYPE set_ContactNames(BSTR ContactNames/*[in]*/) = 0; // [34108]
  virtual HRESULT STDMETHODCALLTYPE get_DateCompleted(DATE* DateCompleted/*[out,retval]*/) = 0; // [33039]
  virtual HRESULT STDMETHODCALLTYPE set_DateCompleted(DATE DateCompleted/*[in]*/) = 0; // [33039]
  virtual HRESULT STDMETHODCALLTYPE get_DelegationState(Outlook_xp::OlTaskDelegationState* DelegationState/*[out,retval]*/) = 0; // [33066]
  virtual HRESULT STDMETHODCALLTYPE get_Delegator(BSTR* Delegator/*[out,retval]*/) = 0; // [33057]
  virtual HRESULT STDMETHODCALLTYPE get_DueDate(DATE* DueDate/*[out,retval]*/) = 0; // [33029]
  virtual HRESULT STDMETHODCALLTYPE set_DueDate(DATE DueDate/*[in]*/) = 0; // [33029]
  virtual HRESULT STDMETHODCALLTYPE get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/) = 0; // [62999]
  virtual HRESULT STDMETHODCALLTYPE get_Ordinal(long* Ordinal/*[out,retval]*/) = 0; // [33059]
  virtual HRESULT STDMETHODCALLTYPE set_Ordinal(long Ordinal/*[in]*/) = 0; // [33059]
  virtual HRESULT STDMETHODCALLTYPE get_Owner(BSTR* Owner/*[out,retval]*/) = 0; // [33055]
  virtual HRESULT STDMETHODCALLTYPE set_Owner(BSTR Owner/*[in]*/) = 0; // [33055]
  virtual HRESULT STDMETHODCALLTYPE get_Ownership(Outlook_xp::OlTaskOwnership* Ownership/*[out,retval]*/) = 0; // [33065]
  virtual HRESULT STDMETHODCALLTYPE get_PercentComplete(long* PercentComplete/*[out,retval]*/) = 0; // [63007]
  virtual HRESULT STDMETHODCALLTYPE set_PercentComplete(long PercentComplete/*[in]*/) = 0; // [63007]
  virtual HRESULT STDMETHODCALLTYPE get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/) = 0; // [63508]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderTime(DATE* ReminderTime/*[out,retval]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderTime(DATE ReminderTime/*[in]*/) = 0; // [34050]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/) = 0; // [34076]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/) = 0; // [34078]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/) = 0; // [34051]
  virtual HRESULT STDMETHODCALLTYPE get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/) = 0; // [34079]
  virtual HRESULT STDMETHODCALLTYPE get_ResponseState(Outlook_xp::OlTaskResponse* ResponseState/*[out,retval]*/) = 0; // [63011]
  virtual HRESULT STDMETHODCALLTYPE get_Role(BSTR* Role/*[out,retval]*/) = 0; // [33063]
  virtual HRESULT STDMETHODCALLTYPE set_Role(BSTR Role/*[in]*/) = 0; // [33063]
  virtual HRESULT STDMETHODCALLTYPE get_SchedulePlusPriority(BSTR* SchedulePlusPriority/*[out,retval]*/) = 0; // [33071]
  virtual HRESULT STDMETHODCALLTYPE set_SchedulePlusPriority(BSTR SchedulePlusPriority/*[in]*/) = 0; // [33071]
  virtual HRESULT STDMETHODCALLTYPE get_StartDate(DATE* StartDate/*[out,retval]*/) = 0; // [33028]
  virtual HRESULT STDMETHODCALLTYPE set_StartDate(DATE StartDate/*[in]*/) = 0; // [33028]
  virtual HRESULT STDMETHODCALLTYPE get_Status(Outlook_xp::OlTaskStatus* Status/*[out,retval]*/) = 0; // [33025]
  virtual HRESULT STDMETHODCALLTYPE set_Status(Outlook_xp::OlTaskStatus Status/*[in]*/) = 0; // [33025]
  virtual HRESULT STDMETHODCALLTYPE get_StatusOnCompletionRecipients(BSTR* StatusOnCompletionRecipients/*[out,retval]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE set_StatusOnCompletionRecipients(BSTR StatusOnCompletionRecipients/*[in]*/) = 0; // [3586]
  virtual HRESULT STDMETHODCALLTYPE get_StatusUpdateRecipients(BSTR* StatusUpdateRecipients/*[out,retval]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE set_StatusUpdateRecipients(BSTR StatusUpdateRecipients/*[in]*/) = 0; // [3587]
  virtual HRESULT STDMETHODCALLTYPE get_TeamTask(VARIANT_BOOL* TeamTask/*[out,retval]*/) = 0; // [33027]
  virtual HRESULT STDMETHODCALLTYPE set_TeamTask(VARIANT_BOOL TeamTask/*[in]*/) = 0; // [33027]
  virtual HRESULT STDMETHODCALLTYPE get_TotalWork(long* TotalWork/*[out,retval]*/) = 0; // [33041]
  virtual HRESULT STDMETHODCALLTYPE set_TotalWork(long TotalWork/*[in]*/) = 0; // [33041]
  virtual HRESULT STDMETHODCALLTYPE Assign(Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [63008]
  virtual HRESULT STDMETHODCALLTYPE CancelResponseState(void) = 0; // [63010]
  virtual HRESULT STDMETHODCALLTYPE ClearRecurrencePattern(void) = 0; // [61605]
  virtual HRESULT STDMETHODCALLTYPE GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/) = 0; // [61604]
  virtual HRESULT STDMETHODCALLTYPE MarkComplete(void) = 0; // [62989]
  virtual HRESULT STDMETHODCALLTYPE Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                            VARIANT fNoUI/*[in]*/, 
                                            VARIANT fAdditionalTextDialog/*[in]*/, 
                                            Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [63009]
  virtual HRESULT STDMETHODCALLTYPE Send(void) = 0; // [61557]
  virtual HRESULT STDMETHODCALLTYPE SkipRecurrence(VARIANT_BOOL* flg/*[out,retval]*/) = 0; // [63012]
  virtual HRESULT STDMETHODCALLTYPE StatusReport(LPDISPATCH* StatusReport/*[out,retval]*/) = 0; // [62994]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_InternetCodepage(long* InternetCodepage/*[out,retval]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE set_InternetCodepage(long InternetCodepage/*[in]*/) = 0; // [16350]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  long __fastcall get_ActualWork(void)
  {
    long ActualWork;
    OLECHECK(this->get_ActualWork((long*)&ActualWork));
    return ActualWork;
  }

  BSTR __fastcall get_CardData(void)
  {
    BSTR CardData = 0;
    OLECHECK(this->get_CardData((BSTR*)&CardData));
    return CardData;
  }

  VARIANT_BOOL __fastcall get_Complete(void)
  {
    VARIANT_BOOL Complete;
    OLECHECK(this->get_Complete((VARIANT_BOOL*)&Complete));
    return Complete;
  }

  BSTR __fastcall get_Contacts(void)
  {
    BSTR Contacts = 0;
    OLECHECK(this->get_Contacts((BSTR*)&Contacts));
    return Contacts;
  }

  BSTR __fastcall get_ContactNames(void)
  {
    BSTR ContactNames = 0;
    OLECHECK(this->get_ContactNames((BSTR*)&ContactNames));
    return ContactNames;
  }

  DATE __fastcall get_DateCompleted(void)
  {
    DATE DateCompleted;
    OLECHECK(this->get_DateCompleted((DATE*)&DateCompleted));
    return DateCompleted;
  }

  Outlook_xp::OlTaskDelegationState __fastcall get_DelegationState(void)
  {
    Outlook_xp::OlTaskDelegationState DelegationState;
    OLECHECK(this->get_DelegationState((Outlook_xp::OlTaskDelegationState*)&DelegationState));
    return DelegationState;
  }

  BSTR __fastcall get_Delegator(void)
  {
    BSTR Delegator = 0;
    OLECHECK(this->get_Delegator((BSTR*)&Delegator));
    return Delegator;
  }

  DATE __fastcall get_DueDate(void)
  {
    DATE DueDate;
    OLECHECK(this->get_DueDate((DATE*)&DueDate));
    return DueDate;
  }

  VARIANT_BOOL __fastcall get_IsRecurring(void)
  {
    VARIANT_BOOL IsRecurring;
    OLECHECK(this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring));
    return IsRecurring;
  }

  long __fastcall get_Ordinal(void)
  {
    long Ordinal;
    OLECHECK(this->get_Ordinal((long*)&Ordinal));
    return Ordinal;
  }

  BSTR __fastcall get_Owner(void)
  {
    BSTR Owner = 0;
    OLECHECK(this->get_Owner((BSTR*)&Owner));
    return Owner;
  }

  Outlook_xp::OlTaskOwnership __fastcall get_Ownership(void)
  {
    Outlook_xp::OlTaskOwnership Ownership;
    OLECHECK(this->get_Ownership((Outlook_xp::OlTaskOwnership*)&Ownership));
    return Ownership;
  }

  long __fastcall get_PercentComplete(void)
  {
    long PercentComplete;
    OLECHECK(this->get_PercentComplete((long*)&PercentComplete));
    return PercentComplete;
  }

  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void)
  {
    Outlook_xp::RecipientsPtr Recipients;
    OLECHECK(this->get_Recipients(&Recipients));
    return Recipients;
  }

  DATE __fastcall get_ReminderTime(void)
  {
    DATE ReminderTime;
    OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
    return ReminderTime;
  }

  VARIANT_BOOL __fastcall get_ReminderOverrideDefault(void)
  {
    VARIANT_BOOL ReminderOverrideDefault;
    OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
    return ReminderOverrideDefault;
  }

  VARIANT_BOOL __fastcall get_ReminderPlaySound(void)
  {
    VARIANT_BOOL ReminderPlaySound;
    OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
    return ReminderPlaySound;
  }

  VARIANT_BOOL __fastcall get_ReminderSet(void)
  {
    VARIANT_BOOL ReminderSet;
    OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
    return ReminderSet;
  }

  BSTR __fastcall get_ReminderSoundFile(void)
  {
    BSTR ReminderSoundFile = 0;
    OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
    return ReminderSoundFile;
  }

  Outlook_xp::OlTaskResponse __fastcall get_ResponseState(void)
  {
    Outlook_xp::OlTaskResponse ResponseState;
    OLECHECK(this->get_ResponseState((Outlook_xp::OlTaskResponse*)&ResponseState));
    return ResponseState;
  }

  BSTR __fastcall get_Role(void)
  {
    BSTR Role = 0;
    OLECHECK(this->get_Role((BSTR*)&Role));
    return Role;
  }

  BSTR __fastcall get_SchedulePlusPriority(void)
  {
    BSTR SchedulePlusPriority = 0;
    OLECHECK(this->get_SchedulePlusPriority((BSTR*)&SchedulePlusPriority));
    return SchedulePlusPriority;
  }

  DATE __fastcall get_StartDate(void)
  {
    DATE StartDate;
    OLECHECK(this->get_StartDate((DATE*)&StartDate));
    return StartDate;
  }

  Outlook_xp::OlTaskStatus __fastcall get_Status(void)
  {
    Outlook_xp::OlTaskStatus Status;
    OLECHECK(this->get_Status((Outlook_xp::OlTaskStatus*)&Status));
    return Status;
  }

  BSTR __fastcall get_StatusOnCompletionRecipients(void)
  {
    BSTR StatusOnCompletionRecipients = 0;
    OLECHECK(this->get_StatusOnCompletionRecipients((BSTR*)&StatusOnCompletionRecipients));
    return StatusOnCompletionRecipients;
  }

  BSTR __fastcall get_StatusUpdateRecipients(void)
  {
    BSTR StatusUpdateRecipients = 0;
    OLECHECK(this->get_StatusUpdateRecipients((BSTR*)&StatusUpdateRecipients));
    return StatusUpdateRecipients;
  }

  VARIANT_BOOL __fastcall get_TeamTask(void)
  {
    VARIANT_BOOL TeamTask;
    OLECHECK(this->get_TeamTask((VARIANT_BOOL*)&TeamTask));
    return TeamTask;
  }

  long __fastcall get_TotalWork(void)
  {
    long TotalWork;
    OLECHECK(this->get_TotalWork((long*)&TotalWork));
    return TotalWork;
  }

  Outlook_xp::TaskItem* __fastcall Assign(void)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->Assign((Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void)
  {
    Outlook_xp::RecurrencePattern* RecurrencPattern = 0;
    OLECHECK(this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern));
    return RecurrencPattern;
  }

  Outlook_xp::TaskItem* __fastcall Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                           VARIANT fNoUI/*[in]*/, 
                                           VARIANT fAdditionalTextDialog/*[in]*/)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->Respond(Response, fNoUI, fAdditionalTextDialog, (Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  VARIANT_BOOL __fastcall SkipRecurrence(void)
  {
    VARIANT_BOOL flg;
    OLECHECK(this->SkipRecurrence((VARIANT_BOOL*)&flg));
    return flg;
  }

  LPDISPATCH __fastcall StatusReport(void)
  {
    LPDISPATCH StatusReport;
    OLECHECK(this->StatusReport((LPDISPATCH*)&StatusReport));
    return StatusReport;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  long __fastcall get_InternetCodepage(void)
  {
    long InternetCodepage;
    OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
    return InternetCodepage;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   long            ActualWork = {read = get_ActualWork, write = set_ActualWork};
  __property   BSTR            CardData = {read = get_CardData, write = set_CardData};
  __property   VARIANT_BOOL    Complete = {read = get_Complete, write = set_Complete};
  __property   BSTR            Contacts = {read = get_Contacts, write = set_Contacts};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   DATE            DateCompleted = {read = get_DateCompleted, write = set_DateCompleted};
  __property   Outlook_xp::OlTaskDelegationState DelegationState = {read = get_DelegationState};
  __property   BSTR            Delegator = {read = get_Delegator};
  __property   DATE            DueDate = {read = get_DueDate, write = set_DueDate};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   long            Ordinal = {read = get_Ordinal, write = set_Ordinal};
  __property   BSTR            Owner = {read = get_Owner, write = set_Owner};
  __property   Outlook_xp::OlTaskOwnership Ownership = {read = get_Ownership};
  __property   long            PercentComplete = {read = get_PercentComplete, write = set_PercentComplete};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   Outlook_xp::OlTaskResponse ResponseState = {read = get_ResponseState};
  __property   BSTR            Role = {read = get_Role, write = set_Role};
  __property   BSTR            SchedulePlusPriority = {read = get_SchedulePlusPriority, write = set_SchedulePlusPriority};
  __property   DATE            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   Outlook_xp::OlTaskStatus Status = {read = get_Status, write = set_Status};
  __property   BSTR            StatusOnCompletionRecipients = {read = get_StatusOnCompletionRecipients, write = set_StatusOnCompletionRecipients};
  __property   BSTR            StatusUpdateRecipients = {read = get_StatusUpdateRecipients, write = set_StatusUpdateRecipients};
  __property   VARIANT_BOOL    TeamTask = {read = get_TeamTask, write = set_TeamTask};
  __property   long            TotalWork = {read = get_TotalWork, write = set_TotalWork};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _TaskRequestAcceptItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063038-0000-0000-C000-000000000046}
// *********************************************************************//
interface _TaskRequestAcceptItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                      Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [61460]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _TaskRequestDeclineItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063039-0000-0000-C000-000000000046}
// *********************************************************************//
interface _TaskRequestDeclineItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                      Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [61460]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _TaskRequestItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063036-0000-0000-C000-000000000046}
// *********************************************************************//
interface _TaskRequestItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                      Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [61460]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _TaskRequestUpdateItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063037-0000-0000-C000-000000000046}
// *********************************************************************//
interface _TaskRequestUpdateItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_Application(Outlook_xp::_Application** Application/*[out,retval]*/) = 0; // [61440]
  virtual HRESULT STDMETHODCALLTYPE get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/) = 0; // [61450]
  virtual HRESULT STDMETHODCALLTYPE get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/) = 0; // [61451]
  virtual HRESULT STDMETHODCALLTYPE get_Parent(LPDISPATCH* Parent/*[out,retval]*/) = 0; // [61441]
  virtual HRESULT STDMETHODCALLTYPE get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/) = 0; // [63511]
  virtual HRESULT STDMETHODCALLTYPE get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/) = 0; // [63509]
  virtual HRESULT STDMETHODCALLTYPE get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE set_BillingInformation(BSTR BillingInformation/*[in]*/) = 0; // [34101]
  virtual HRESULT STDMETHODCALLTYPE get_Body(BSTR* Body/*[out,retval]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE set_Body(BSTR Body/*[in]*/) = 0; // [37120]
  virtual HRESULT STDMETHODCALLTYPE get_Categories(BSTR* Categories/*[out,retval]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE set_Categories(BSTR Categories/*[in]*/) = 0; // [36865]
  virtual HRESULT STDMETHODCALLTYPE get_Companies(BSTR* Companies/*[out,retval]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE set_Companies(BSTR Companies/*[in]*/) = 0; // [34107]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/) = 0; // [113]
  virtual HRESULT STDMETHODCALLTYPE get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/) = 0; // [112]
  virtual HRESULT STDMETHODCALLTYPE get_CreationTime(DATE* CreationTime/*[out,retval]*/) = 0; // [12295]
  virtual HRESULT STDMETHODCALLTYPE get_EntryID(BSTR* EntryID/*[out,retval]*/) = 0; // [61470]
  virtual HRESULT STDMETHODCALLTYPE get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/) = 0; // [61589]
  virtual HRESULT STDMETHODCALLTYPE get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/) = 0; // [61502]
  virtual HRESULT STDMETHODCALLTYPE get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE set_Importance(Outlook_xp::OlImportance Importance/*[in]*/) = 0; // [23]
  virtual HRESULT STDMETHODCALLTYPE get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/) = 0; // [12296]
  virtual HRESULT STDMETHODCALLTYPE get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/) = 0; // [61696]
  virtual HRESULT STDMETHODCALLTYPE get_MessageClass(BSTR* MessageClass/*[out,retval]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE set_MessageClass(BSTR MessageClass/*[in]*/) = 0; // [26]
  virtual HRESULT STDMETHODCALLTYPE get_Mileage(BSTR* Mileage/*[out,retval]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE set_Mileage(BSTR Mileage/*[in]*/) = 0; // [34100]
  virtual HRESULT STDMETHODCALLTYPE get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE set_NoAging(VARIANT_BOOL NoAging/*[in]*/) = 0; // [34062]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/) = 0; // [34130]
  virtual HRESULT STDMETHODCALLTYPE get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/) = 0; // [34132]
  virtual HRESULT STDMETHODCALLTYPE get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/) = 0; // [61603]
  virtual HRESULT STDMETHODCALLTYPE get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/) = 0; // [54]
  virtual HRESULT STDMETHODCALLTYPE get_Size(long* Size/*[out,retval]*/) = 0; // [3592]
  virtual HRESULT STDMETHODCALLTYPE get_Subject(BSTR* Subject/*[out,retval]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE set_Subject(BSTR Subject/*[in]*/) = 0; // [55]
  virtual HRESULT STDMETHODCALLTYPE get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE set_UnRead(VARIANT_BOOL UnRead/*[in]*/) = 0; // [61468]
  virtual HRESULT STDMETHODCALLTYPE get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/) = 0; // [63510]
  virtual HRESULT STDMETHODCALLTYPE Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/) = 0; // [61475]
  virtual HRESULT STDMETHODCALLTYPE Copy(LPDISPATCH* Item/*[out,retval]*/) = 0; // [61490]
  virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0; // [61514]
  virtual HRESULT STDMETHODCALLTYPE Display(VARIANT Modal/*[in,opt]*/= TNoParam()) = 0; // [61606]
  virtual HRESULT STDMETHODCALLTYPE Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                         LPDISPATCH* Item/*[out,retval]*/) = 0; // [61492]
  virtual HRESULT STDMETHODCALLTYPE PrintOut(void) = 0; // [61491]
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0; // [61512]
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam()) = 0; // [61521]
  virtual HRESULT STDMETHODCALLTYPE GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                      Outlook_xp::TaskItem** Item/*[out,retval]*/) = 0; // [61460]
  virtual HRESULT STDMETHODCALLTYPE get_Links(Outlook_xp::Links** Links/*[out,retval]*/) = 0; // [62469]
  virtual HRESULT STDMETHODCALLTYPE get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/) = 0; // [64077]
  virtual HRESULT STDMETHODCALLTYPE ShowCategoriesDialog(void) = 0; // [64011]
  virtual HRESULT STDMETHODCALLTYPE get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/) = 0; // [64009]
  virtual HRESULT STDMETHODCALLTYPE get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/) = 0; // [34161]
  virtual HRESULT STDMETHODCALLTYPE get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/) = 0; // [64164]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Outlook_xp::_ApplicationPtr __fastcall get_Application(void)
  {
    Outlook_xp::_ApplicationPtr Application;
    OLECHECK(this->get_Application(&Application));
    return Application;
  }

  Outlook_xp::OlObjectClass __fastcall get_Class(void)
  {
    Outlook_xp::OlObjectClass Class;
    OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
    return Class;
  }

  Outlook_xp::_NameSpacePtr __fastcall get_Session(void)
  {
    Outlook_xp::_NameSpacePtr Session;
    OLECHECK(this->get_Session(&Session));
    return Session;
  }

  LPDISPATCH __fastcall get_Parent(void)
  {
    LPDISPATCH Parent;
    OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
    return Parent;
  }

  Outlook_xp::ActionsPtr __fastcall get_Actions(void)
  {
    Outlook_xp::ActionsPtr Actions;
    OLECHECK(this->get_Actions(&Actions));
    return Actions;
  }

  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void)
  {
    Outlook_xp::AttachmentsPtr Attachments;
    OLECHECK(this->get_Attachments(&Attachments));
    return Attachments;
  }

  BSTR __fastcall get_BillingInformation(void)
  {
    BSTR BillingInformation = 0;
    OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
    return BillingInformation;
  }

  BSTR __fastcall get_Body(void)
  {
    BSTR Body = 0;
    OLECHECK(this->get_Body((BSTR*)&Body));
    return Body;
  }

  BSTR __fastcall get_Categories(void)
  {
    BSTR Categories = 0;
    OLECHECK(this->get_Categories((BSTR*)&Categories));
    return Categories;
  }

  BSTR __fastcall get_Companies(void)
  {
    BSTR Companies = 0;
    OLECHECK(this->get_Companies((BSTR*)&Companies));
    return Companies;
  }

  BSTR __fastcall get_ConversationIndex(void)
  {
    BSTR ConversationIndex = 0;
    OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
    return ConversationIndex;
  }

  BSTR __fastcall get_ConversationTopic(void)
  {
    BSTR ConversationTopic = 0;
    OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
    return ConversationTopic;
  }

  DATE __fastcall get_CreationTime(void)
  {
    DATE CreationTime;
    OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
    return CreationTime;
  }

  BSTR __fastcall get_EntryID(void)
  {
    BSTR EntryID = 0;
    OLECHECK(this->get_EntryID((BSTR*)&EntryID));
    return EntryID;
  }

  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void)
  {
    Outlook_xp::FormDescriptionPtr FormDescription;
    OLECHECK(this->get_FormDescription(&FormDescription));
    return FormDescription;
  }

  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void)
  {
    Outlook_xp::_InspectorPtr GetInspector;
    OLECHECK(this->get_GetInspector(&GetInspector));
    return GetInspector;
  }

  Outlook_xp::OlImportance __fastcall get_Importance(void)
  {
    Outlook_xp::OlImportance Importance;
    OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
    return Importance;
  }

  DATE __fastcall get_LastModificationTime(void)
  {
    DATE LastModificationTime;
    OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
    return LastModificationTime;
  }

  LPUNKNOWN __fastcall get_MAPIOBJECT(void)
  {
    LPUNKNOWN MAPIOBJECT;
    OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
    return MAPIOBJECT;
  }

  BSTR __fastcall get_MessageClass(void)
  {
    BSTR MessageClass = 0;
    OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
    return MessageClass;
  }

  BSTR __fastcall get_Mileage(void)
  {
    BSTR Mileage = 0;
    OLECHECK(this->get_Mileage((BSTR*)&Mileage));
    return Mileage;
  }

  VARIANT_BOOL __fastcall get_NoAging(void)
  {
    VARIANT_BOOL NoAging;
    OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
    return NoAging;
  }

  long __fastcall get_OutlookInternalVersion(void)
  {
    long OutlookInternalVersion;
    OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
    return OutlookInternalVersion;
  }

  BSTR __fastcall get_OutlookVersion(void)
  {
    BSTR OutlookVersion = 0;
    OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
    return OutlookVersion;
  }

  VARIANT_BOOL __fastcall get_Saved(void)
  {
    VARIANT_BOOL Saved;
    OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
    return Saved;
  }

  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void)
  {
    Outlook_xp::OlSensitivity Sensitivity;
    OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
    return Sensitivity;
  }

  long __fastcall get_Size(void)
  {
    long Size;
    OLECHECK(this->get_Size((long*)&Size));
    return Size;
  }

  BSTR __fastcall get_Subject(void)
  {
    BSTR Subject = 0;
    OLECHECK(this->get_Subject((BSTR*)&Subject));
    return Subject;
  }

  VARIANT_BOOL __fastcall get_UnRead(void)
  {
    VARIANT_BOOL UnRead;
    OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
    return UnRead;
  }

  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void)
  {
    Outlook_xp::UserPropertiesPtr UserProperties;
    OLECHECK(this->get_UserProperties(&UserProperties));
    return UserProperties;
  }

  LPDISPATCH __fastcall Copy(void)
  {
    LPDISPATCH Item;
    OLECHECK(this->Copy((LPDISPATCH*)&Item));
    return Item;
  }

  LPDISPATCH __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
  {
    LPDISPATCH Item;
    OLECHECK(this->Move(DestFldr, (LPDISPATCH*)&Item));
    return Item;
  }

  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
  {
    Outlook_xp::TaskItem* Item = 0;
    OLECHECK(this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item));
    return Item;
  }

  Outlook_xp::LinksPtr __fastcall get_Links(void)
  {
    Outlook_xp::LinksPtr Links;
    OLECHECK(this->get_Links(&Links));
    return Links;
  }

  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void)
  {
    Outlook_xp::OlDownloadState DownloadState;
    OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
    return DownloadState;
  }

  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void)
  {
    Outlook_xp::ItemPropertiesPtr ItemProperties;
    OLECHECK(this->get_ItemProperties(&ItemProperties));
    return ItemProperties;
  }

  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void)
  {
    Outlook_xp::OlRemoteStatus MarkForDownload;
    OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
    return MarkForDownload;
  }

  VARIANT_BOOL __fastcall get_IsConflict(void)
  {
    VARIANT_BOOL IsConflict;
    OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
    return IsConflict;
  }


  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ApplicationEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300E-0000-0000-C000-000000000046}
// *********************************************************************//
interface ApplicationEvents_10 : public TDispWrapper<IDispatch>
{
  HRESULT __fastcall ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* ItemSend */ DISPID(61442));
    TAutoArgs<2> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    _args[2] = Cancel /*[VT_BOOL:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall NewMail()
  {
    _TDispID _dispid(/* NewMail */ DISPID(61443));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Reminder(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* Reminder */ DISPID(61444));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/)
  {
    _TDispID _dispid(/* OptionsPagesAdd */ DISPID(61445));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
    return OleFunction(_dispid, _args);
  }

  HRESULT __fastcall Startup()
  {
    _TDispID _dispid(/* Startup */ DISPID(61446));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall Quit()
  {
    _TDispID _dispid(/* Quit */ DISPID(61447));
    return OleFunction(_dispid);
  }

  void __fastcall AdvancedSearchComplete(Outlook_xp::Search* SearchObject/*[in]*/)
  {
    _TDispID _dispid(/* AdvancedSearchComplete */ DISPID(64106));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Search*)SearchObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall AdvancedSearchStopped(Outlook_xp::Search* SearchObject/*[in]*/)
  {
    _TDispID _dispid(/* AdvancedSearchStopped */ DISPID(64107));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::Search*)SearchObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall MAPILogonComplete()
  {
    _TDispID _dispid(/* MAPILogonComplete */ DISPID(64144));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: ResultsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006300D-0000-0000-C000-000000000046}
// *********************************************************************//
interface ResultsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall ItemAdd(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* ItemAdd */ DISPID(61441));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ItemChange(LPDISPATCH Item/*[in]*/)
  {
    _TDispID _dispid(/* ItemChange */ DISPID(61442));
    TAutoArgs<1> _args;
    _args[1] = Item /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ItemRemove()
  {
    _TDispID _dispid(/* ItemRemove */ DISPID(61443));
    OleProcedure(_dispid);
  }


};
// *********************************************************************//
// Interface: _ViewsEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630A5-0000-0000-C000-000000000046}
// *********************************************************************//
interface _ViewsEvents : public TDispWrapper<IDispatch>
{
  void __fastcall ViewAdd(Outlook_xp::View* View/*[in]*/)
  {
    _TDispID _dispid(/* ViewAdd */ DISPID(400));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::View*)View /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ViewRemove(Outlook_xp::View* View/*[in]*/)
  {
    _TDispID _dispid(/* ViewRemove */ DISPID(64071));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::View*)View /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: ReminderCollectionEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630B2-0000-0000-C000-000000000046}
// *********************************************************************//
interface ReminderCollectionEvents : public TDispWrapper<IDispatch>
{
  void __fastcall BeforeReminderShow(VARIANT_BOOL* Cancel/*[in]*/)
  {
    _TDispID _dispid(/* BeforeReminderShow */ DISPID(64147));
    TAutoArgs<1> _args;
    _args[1] = Cancel /*[VT_BOOL:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ReminderAdd(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
  {
    _TDispID _dispid(/* ReminderAdd */ DISPID(64148));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ReminderChange(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
  {
    _TDispID _dispid(/* ReminderChange */ DISPID(64149));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ReminderFire(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
  {
    _TDispID _dispid(/* ReminderFire */ DISPID(64150));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }

  void __fastcall ReminderRemove()
  {
    _TDispID _dispid(/* ReminderRemove */ DISPID(64151));
    OleProcedure(_dispid);
  }

  void __fastcall Snooze(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
  {
    _TDispID _dispid(/* Snooze */ DISPID(64152));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
    OleProcedure(_dispid, _args);
  }


};
// *********************************************************************//
// Interface: _IRecipientControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {D87E7E16-6897-11CE-A6C0-00AA00608FAA}
// *********************************************************************//
interface _IRecipientControl  : public IDispatch
{
public:
   HRESULT STDMETHODCALLTYPE get_Enabled(VARIANT_BOOL* Enabled/*[out,retval]*/); // [-514]
   HRESULT STDMETHODCALLTYPE set_Enabled(VARIANT_BOOL Enabled/*[in]*/); // [-514]
   HRESULT STDMETHODCALLTYPE get_BackColor(long* BackColor/*[out,retval]*/); // [-501]
   HRESULT STDMETHODCALLTYPE set_BackColor(long BackColor/*[in]*/); // [-501]
   HRESULT STDMETHODCALLTYPE get_ForeColor(long* ForeColor/*[out,retval]*/); // [-513]
   HRESULT STDMETHODCALLTYPE set_ForeColor(long ForeColor/*[in]*/); // [-513]
   HRESULT STDMETHODCALLTYPE get_ReadOnly(VARIANT_BOOL* ReadOnly/*[out,retval]*/); // [-2147356664]
   HRESULT STDMETHODCALLTYPE set_ReadOnly(VARIANT_BOOL ReadOnly/*[in]*/); // [-2147356664]
   HRESULT STDMETHODCALLTYPE get_Font(LPDISPATCH* Font/*[out,retval]*/); // [-512]
   HRESULT STDMETHODCALLTYPE set_Font(LPDISPATCH Font/*[in]*/); // [-512]
   HRESULT STDMETHODCALLTYPE get_SpecialEffect(long* Effect/*[out,retval]*/); // [12]
   HRESULT STDMETHODCALLTYPE set_SpecialEffect(long Effect/*[in]*/); // [12]
};

// *********************************************************************//
// Interface: _DRecipientControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F025-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DRecipientControl : public TDispWrapper<IDispatch>
{
  VARIANT_BOOL __fastcall get_Enabled()
  {
    _TDispID _dispid(/* Enabled */ DISPID(-514));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_Enabled(VARIANT_BOOL Param1/*[in]*/)
  {
    _TDispID _dispid(/* Enabled */ DISPID(-514));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_BOOL:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  long __fastcall get_BackColor()
  {
    _TDispID _dispid(/* BackColor */ DISPID(-501));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_BackColor(long Param1/*[in]*/)
  {
    _TDispID _dispid(/* BackColor */ DISPID(-501));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_I4:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  long __fastcall get_ForeColor()
  {
    _TDispID _dispid(/* ForeColor */ DISPID(-513));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_ForeColor(long Param1/*[in]*/)
  {
    _TDispID _dispid(/* ForeColor */ DISPID(-513));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_I4:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  VARIANT_BOOL __fastcall get_ReadOnly()
  {
    _TDispID _dispid(/* ReadOnly */ DISPID(-2147356664));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_ReadOnly(VARIANT_BOOL Param1/*[in]*/)
  {
    _TDispID _dispid(/* ReadOnly */ DISPID(-2147356664));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_BOOL:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  LPDISPATCH __fastcall get_Font()
  {
    _TDispID _dispid(/* Font */ DISPID(-512));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_Font(LPDISPATCH Param1/*[in]*/)
  {
    _TDispID _dispid(/* Font */ DISPID(-512));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_DISPATCH:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  long __fastcall get_SpecialEffect()
  {
    _TDispID _dispid(/* SpecialEffect */ DISPID(12));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_SpecialEffect(long Param1/*[in]*/)
  {
    _TDispID _dispid(/* SpecialEffect */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_I4:0]*/;
    OlePropertyPut(_dispid, _args);
  }


  __property   VARIANT_BOOL    Enabled = {read = get_Enabled, write = set_Enabled};
  __property   long            BackColor = {read = get_BackColor, write = set_BackColor};
  __property   long            ForeColor = {read = get_ForeColor, write = set_ForeColor};
  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   LPDISPATCH      Font = {read = get_Font, write = set_Font};
  __property   long            SpecialEffect = {read = get_SpecialEffect, write = set_SpecialEffect};
};
// *********************************************************************//
// Interface: _DRecipientControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {D87E7E17-6897-11CE-A6C0-00AA00608FAA}
// *********************************************************************//
interface _DRecipientControlEvents : public TDispWrapper<IDispatch>
{

};
// *********************************************************************//
// Interface: _IDocSiteControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {43507DD0-811D-11CE-B565-00AA00608FAA}
// *********************************************************************//
interface _IDocSiteControl  : public IDispatch
{
public:
   HRESULT STDMETHODCALLTYPE get_ReadOnly(VARIANT_BOOL* ReadOnly/*[out,retval]*/); // [-2147356664]
   HRESULT STDMETHODCALLTYPE set_ReadOnly(VARIANT_BOOL ReadOnly/*[in]*/); // [-2147356664]
};

// *********************************************************************//
// Interface: _DDocSiteControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F026-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DDocSiteControl : public TDispWrapper<IDispatch>
{
  VARIANT_BOOL __fastcall get_ReadOnly()
  {
    _TDispID _dispid(/* ReadOnly */ DISPID(-2147356664));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_ReadOnly(VARIANT_BOOL Param1/*[in]*/)
  {
    _TDispID _dispid(/* ReadOnly */ DISPID(-2147356664));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_BOOL:0]*/;
    OlePropertyPut(_dispid, _args);
  }


  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
};
// *********************************************************************//
// Interface: _DDocSiteControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {50BB9B50-811D-11CE-B565-00AA00608FAA}
// *********************************************************************//
interface _DDocSiteControlEvents : public TDispWrapper<IDispatch>
{

};
// *********************************************************************//
// Interface: _IDpxCtrl
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {0006F097-0000-0000-C000-000000000046}
// *********************************************************************//
interface _IDpxCtrl  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_StartDate(long* plStartDate/*[out,retval]*/) = 0; // [64091]
  virtual HRESULT STDMETHODCALLTYPE set_StartDate(long plStartDate/*[in]*/) = 0; // [64091]
  virtual HRESULT STDMETHODCALLTYPE get_EndDate(long* plEndDate/*[out,retval]*/) = 0; // [64092]
  virtual HRESULT STDMETHODCALLTYPE set_EndDate(long plEndDate/*[in]*/) = 0; // [64092]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_StartDate(void)
  {
    long plStartDate;
    OLECHECK(this->get_StartDate((long*)&plStartDate));
    return plStartDate;
  }

  long __fastcall get_EndDate(void)
  {
    long plEndDate;
    OLECHECK(this->get_EndDate((long*)&plEndDate));
    return plEndDate;
  }


  __property   long            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   long            EndDate = {read = get_EndDate, write = set_EndDate};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: _IPageWrapCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {494F0970-DD96-11D2-AF70-006008AFF117}
// *********************************************************************//
interface _IPageWrapCtrl  : public IDispatch
{
public:
   HRESULT STDMETHODCALLTYPE get_BackColor(unsigned_long* pcolorRef/*[out,retval]*/); // [64090]
   HRESULT STDMETHODCALLTYPE set_BackColor(unsigned_long pcolorRef/*[in]*/); // [64090]
};

// *********************************************************************//
// Interface: _DPageWrapCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F096-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DPageWrapCtrl : public TDispWrapper<IDispatch>
{
  unsigned_long __fastcall get_BackColor()
  {
    _TDispID _dispid(/* BackColor */ DISPID(64090));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_BackColor(unsigned_long Param1/*[in]*/)
  {
    _TDispID _dispid(/* BackColor */ DISPID(64090));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_UI4:0]*/;
    OlePropertyPut(_dispid, _args);
  }


  __property   unsigned_long   BackColor = {read = get_BackColor, write = set_BackColor};
};
// *********************************************************************//
// Interface: _DPageWrapCtrlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {494F0971-DD96-11D2-AF70-006008AFF117}
// *********************************************************************//
interface _DPageWrapCtrlEvents : public TDispWrapper<IDispatch>
{

};
// *********************************************************************//
// Interface: _IInspectorCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {E182A127-EADD-46E1-B878-482C48CD8754}
// *********************************************************************//
interface _IInspectorCtrl  : public IDispatch
{
public:
   HRESULT STDMETHODCALLTYPE get_URL(BSTR* ppwzURL/*[out,retval]*/); // [64132]
   HRESULT STDMETHODCALLTYPE set_URL(BSTR ppwzURL/*[in]*/); // [64132]
   HRESULT STDMETHODCALLTYPE get_Item(LPDISPATCH* ppdisp/*[out,retval]*/); // [64134]
   HRESULT STDMETHODCALLTYPE OnItemChange(LPDISPATCH pdispItem/*[in]*/); // [64137]
};

// *********************************************************************//
// Interface: _DInspectorCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F09D-0000-0000-C000-000000000046}
// *********************************************************************//
interface _DInspectorCtrl : public TDispWrapper<IDispatch>
{
  BSTR __fastcall get_URL()
  {
    _TDispID _dispid(/* URL */ DISPID(64132));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall set_URL(BSTR Param1/*[in]*/)
  {
    _TDispID _dispid(/* URL */ DISPID(64132));
    TAutoArgs<1> _args;
    _args[1] = Param1 /*[VT_BSTR:0]*/;
    OlePropertyPut(_dispid, _args);
  }

  LPDISPATCH __fastcall get_Item()
  {
    _TDispID _dispid(/* Item */ DISPID(64134));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }

  void __fastcall OnItemChange(LPDISPATCH pdispItem/*[in]*/)
  {
    _TDispID _dispid(/* OnItemChange */ DISPID(64137));
    TAutoArgs<1> _args;
    _args[1] = pdispItem /*[VT_DISPATCH:0]*/;
    OleProcedure(_dispid, _args);
  }


  __property   BSTR            URL = {read = get_URL, write = set_URL};
  __property   LPDISPATCH      Item = {read = get_Item};
};
// *********************************************************************//
// Interface: _DInspectorEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {2D9C6D57-BD3C-4275-BED2-73F0EDC18CCE}
// *********************************************************************//
interface _DInspectorEvents : public TDispWrapper<IDispatch>
{

};
// *********************************************************************//
// Interface: DDataSourceObject
// Flags:     (4112) Hidden Dispatchable
// GUID:      {11858B51-DE06-494E-915A-6CCEF17F7CB6}
// *********************************************************************//
interface DDataSourceObject : public TDispWrapper<IDispatch>
{
  void __fastcall set_OutlookItem(LPDISPATCH /*[VT_DISPATCH:0]*/ Value)
  {
    _TDispID _dispid(/* OutlookItem */ DISPID(64096));
    TAutoArgs<1> _args;
    _args[1] = Value;
    OlePropertyPut(_dispid, _args);
  }

  LPDISPATCH /*[VT_DISPATCH:0]*/ __fastcall get_OutlookItem()
  {
    _TDispID _dispid(/* OutlookItem */ DISPID(64096));
    TAutoArgs<0> _args;
    OlePropertyGet(_dispid, _args);
    return _args.GetRetVariant();
  }


  __property   LPDISPATCH      OutlookItem = {read = get_OutlookItem, write = set_OutlookItem};
};
#if !defined(__TLB_NO_INTERFACE_WRAPPERS)
typedef TComInterface<Action>  TCOMAction;

// *********************************************************************//
// DispIntf:  Action
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063043-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ActionDispT : public TAutoDriver<Action>
{
public:
  ActionDispT(){}

  ActionDispT(Action *pintf)
  {
    TAutoDriver<Action>::Bind(pintf, false);
  }

  ActionDispT(ActionPtr pintf)
  {
    TAutoDriver<Action>::Bind(pintf, true);
  }

  ActionDispT& operator=(Action *pintf)
  {
    TAutoDriver<Action>::Bind(pintf, false);
    return *this;
  }

  ActionDispT& operator=(ActionPtr pintf)
  {
    TAutoDriver<Action>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CopyLike(Outlook_xp::OlActionCopyLike* CopyLike/*[out,retval]*/);
  Outlook_xp::OlActionCopyLike __fastcall get_CopyLike(void);
  HRESULT         __fastcall set_CopyLike(Outlook_xp::OlActionCopyLike CopyLike/*[in]*/);
  HRESULT         __fastcall get_Enabled(VARIANT_BOOL* Enabled/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Enabled(void);
  HRESULT         __fastcall set_Enabled(VARIANT_BOOL Enabled/*[in]*/);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_Prefix(BSTR* Prefix/*[out,retval]*/);
  BSTR            __fastcall get_Prefix(void);
  HRESULT         __fastcall set_Prefix(BSTR Prefix/*[in]*/);
  HRESULT         __fastcall get_ReplyStyle(Outlook_xp::OlActionReplyStyle* ReplyStyle/*[out,retval]*/);
  Outlook_xp::OlActionReplyStyle __fastcall get_ReplyStyle(void);
  HRESULT         __fastcall set_ReplyStyle(Outlook_xp::OlActionReplyStyle ReplyStyle/*[in]*/);
  HRESULT         __fastcall get_ResponseStyle(Outlook_xp::OlActionResponseStyle* ResponseStyle/*[out,retval]*/);
  Outlook_xp::OlActionResponseStyle __fastcall get_ResponseStyle(void);
  HRESULT         __fastcall set_ResponseStyle(Outlook_xp::OlActionResponseStyle ResponseStyle/*[in]*/);
  HRESULT         __fastcall get_ShowOn(Outlook_xp::OlActionShowOn* ShowOn/*[out,retval]*/);
  Outlook_xp::OlActionShowOn __fastcall get_ShowOn(void);
  HRESULT         __fastcall set_ShowOn(Outlook_xp::OlActionShowOn ShowOn/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Execute(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Execute(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OlActionCopyLike CopyLike = {read = get_CopyLike, write = set_CopyLike};
  __property   VARIANT_BOOL    Enabled = {read = get_Enabled, write = set_Enabled};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Prefix = {read = get_Prefix, write = set_Prefix};
  __property   Outlook_xp::OlActionReplyStyle ReplyStyle = {read = get_ReplyStyle, write = set_ReplyStyle};
  __property   Outlook_xp::OlActionResponseStyle ResponseStyle = {read = get_ResponseStyle, write = set_ResponseStyle};
  __property   Outlook_xp::OlActionShowOn ShowOn = {read = get_ShowOn, write = set_ShowOn};
};
typedef ActionDispT<Action> ActionDisp;

// *********************************************************************//
// SmartIntf: TCOM_Application
// Interface: _Application
// *********************************************************************//
template <class T /* _Application */ >
class TCOM_ApplicationT : public TComInterface<_Application>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ApplicationT() {}
  TCOM_ApplicationT(_Application *intf, bool addRef = false) : TComInterface<_Application>(intf, addRef) {}
  TCOM_ApplicationT(const TCOM_ApplicationT& src) : TComInterface<_Application>(src) {}
  TCOM_ApplicationT& operator=(const TCOM_ApplicationT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Assistant(Office_xp::Assistant** Assistant/*[out,retval]*/);
  Office_xp::AssistantPtr __fastcall get_Assistant(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Version(BSTR* Version/*[out,retval]*/);
  BSTR            __fastcall get_Version(void);
  HRESULT         __fastcall ActiveExplorer(Outlook_xp::_Explorer** ActiveExplorer/*[out,retval]*/);
  Outlook_xp::_Explorer* __fastcall ActiveExplorer(void);
  HRESULT         __fastcall ActiveInspector(Outlook_xp::_Inspector** ActiveInspector/*[out,retval]*/);
  Outlook_xp::_Inspector* __fastcall ActiveInspector(void);
  HRESULT         __fastcall CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/, 
                                        LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/);
  HRESULT         __fastcall CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                                    VARIANT InFolder/*[in,opt]*/, 
                                                    LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                                    VARIANT InFolder/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall CreateObject(BSTR ObjectName/*[in]*/, 
                                          LPDISPATCH* Object/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateObject(BSTR ObjectName/*[in]*/);
  HRESULT         __fastcall GetNamespace(BSTR Type/*[in]*/, 
                                          Outlook_xp::_NameSpace** NameSpace/*[out,retval]*/);
  Outlook_xp::_NameSpace* __fastcall GetNamespace(BSTR Type/*[in]*/);
  HRESULT         __fastcall Quit(void);
  HRESULT         __fastcall get_COMAddIns(Office_xp::COMAddIns** COMAddIns/*[out,retval]*/);
  Office_xp::COMAddInsPtr __fastcall get_COMAddIns(void);
  HRESULT         __fastcall get_Explorers(Outlook_xp::_Explorers** Explorers/*[out,retval]*/);
  Outlook_xp::_ExplorersPtr __fastcall get_Explorers(void);
  HRESULT         __fastcall get_Inspectors(Outlook_xp::_Inspectors** Inspectors/*[out,retval]*/);
  Outlook_xp::_InspectorsPtr __fastcall get_Inspectors(void);
  HRESULT         __fastcall get_LanguageSettings(Office_xp::LanguageSettings** LanguageSettings/*[out,retval]*/);
  Office_xp::LanguageSettingsPtr __fastcall get_LanguageSettings(void);
  HRESULT         __fastcall get_ProductCode(BSTR* ProductCode/*[out,retval]*/);
  BSTR            __fastcall get_ProductCode(void);
  HRESULT         __fastcall get_AnswerWizard(Office_xp::AnswerWizard** AnswerWizard/*[out,retval]*/);
  Office_xp::AnswerWizardPtr __fastcall get_AnswerWizard(void);
  HRESULT         __fastcall get_FeatureInstall(Office_xp::MsoFeatureInstall* FeatureInstall/*[out,retval]*/);
  Office_xp::MsoFeatureInstall __fastcall get_FeatureInstall(void);
  HRESULT         __fastcall set_FeatureInstall(Office_xp::MsoFeatureInstall FeatureInstall/*[in]*/);
  HRESULT         __fastcall ActiveWindow(LPDISPATCH* ActiveWindow/*[out,retval]*/);
  LPDISPATCH      __fastcall ActiveWindow(void);
  HRESULT         __fastcall CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/, 
                                      LPDISPATCH* DocItem/*[out,retval]*/);
  LPDISPATCH      __fastcall CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/);
  HRESULT         __fastcall AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                            VARIANT SearchSubFolders/*[in,opt]*/, 
                                            VARIANT Tag/*[in,opt]*/, 
                                            Outlook_xp::Search** AdvancedSearch/*[out,retval]*/);
  Outlook_xp::Search* __fastcall AdvancedSearch(BSTR Scope/*[in]*/, 
                                                VARIANT Filter/*[in,opt]*/= TNoParam(), 
                                                VARIANT SearchSubFolders/*[in,opt]*/= TNoParam(), 
                                                VARIANT Tag/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall IsSearchSynchronous(BSTR LookInFolders/*[in]*/, 
                                                 VARIANT_BOOL* IsSearchSynchronous/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsSearchSynchronous(BSTR LookInFolders/*[in]*/);
  HRESULT         __fastcall GetNewNickNames(VARIANT* pvar/*[in]*/);
  HRESULT         __fastcall get_Reminders(Outlook_xp::_Reminders** Reminders/*[out,retval]*/);
  Outlook_xp::_RemindersPtr __fastcall get_Reminders(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::AssistantPtr Assistant = {read = get_Assistant};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Version = {read = get_Version};
  __property   Office_xp::COMAddInsPtr COMAddIns = {read = get_COMAddIns};
  __property   Outlook_xp::_ExplorersPtr Explorers = {read = get_Explorers};
  __property   Outlook_xp::_InspectorsPtr Inspectors = {read = get_Inspectors};
  __property   Office_xp::LanguageSettingsPtr LanguageSettings = {read = get_LanguageSettings};
  __property   BSTR            ProductCode = {read = get_ProductCode};
  __property   Office_xp::AnswerWizardPtr AnswerWizard = {read = get_AnswerWizard};
  __property   Office_xp::MsoFeatureInstall FeatureInstall = {read = get_FeatureInstall, write = set_FeatureInstall};
  __property   Outlook_xp::_RemindersPtr Reminders = {read = get_Reminders};
};
typedef TCOM_ApplicationT<_Application> TCOM_Application;

// *********************************************************************//
// DispIntf:  _Application
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063001-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ApplicationDispT : public TAutoDriver<_Application>
{
public:
  _ApplicationDispT(){}

  _ApplicationDispT(_Application *pintf)
  {
    TAutoDriver<_Application>::Bind(pintf, false);
  }

  _ApplicationDispT(_ApplicationPtr pintf)
  {
    TAutoDriver<_Application>::Bind(pintf, true);
  }

  _ApplicationDispT& operator=(_Application *pintf)
  {
    TAutoDriver<_Application>::Bind(pintf, false);
    return *this;
  }

  _ApplicationDispT& operator=(_ApplicationPtr pintf)
  {
    TAutoDriver<_Application>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OutlookApplication));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OutlookApplication);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Assistant(Office_xp::Assistant** Assistant/*[out,retval]*/);
  Office_xp::AssistantPtr __fastcall get_Assistant(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Version(BSTR* Version/*[out,retval]*/);
  BSTR            __fastcall get_Version(void);
  HRESULT         __fastcall ActiveExplorer(Outlook_xp::_Explorer** ActiveExplorer/*[out,retval]*/);
  Outlook_xp::_Explorer* __fastcall ActiveExplorer(void);
  HRESULT         __fastcall ActiveInspector(Outlook_xp::_Inspector** ActiveInspector/*[out,retval]*/);
  Outlook_xp::_Inspector* __fastcall ActiveInspector(void);
  HRESULT         __fastcall CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/, 
                                        LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/);
  HRESULT         __fastcall CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                                    VARIANT InFolder/*[in,opt]*/, 
                                                    LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, 
                                                    VARIANT InFolder/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall CreateObject(BSTR ObjectName/*[in]*/, 
                                          LPDISPATCH* Object/*[out,retval]*/);
  LPDISPATCH      __fastcall CreateObject(BSTR ObjectName/*[in]*/);
  HRESULT         __fastcall GetNamespace(BSTR Type/*[in]*/, 
                                          Outlook_xp::_NameSpace** NameSpace/*[out,retval]*/);
  Outlook_xp::_NameSpace* __fastcall GetNamespace(BSTR Type/*[in]*/);
  HRESULT         __fastcall Quit();
  HRESULT         __fastcall get_COMAddIns(Office_xp::COMAddIns** COMAddIns/*[out,retval]*/);
  Office_xp::COMAddInsPtr __fastcall get_COMAddIns(void);
  HRESULT         __fastcall get_Explorers(Outlook_xp::_Explorers** Explorers/*[out,retval]*/);
  Outlook_xp::_ExplorersPtr __fastcall get_Explorers(void);
  HRESULT         __fastcall get_Inspectors(Outlook_xp::_Inspectors** Inspectors/*[out,retval]*/);
  Outlook_xp::_InspectorsPtr __fastcall get_Inspectors(void);
  HRESULT         __fastcall get_LanguageSettings(Office_xp::LanguageSettings** LanguageSettings/*[out,retval]*/);
  Office_xp::LanguageSettingsPtr __fastcall get_LanguageSettings(void);
  HRESULT         __fastcall get_ProductCode(BSTR* ProductCode/*[out,retval]*/);
  BSTR            __fastcall get_ProductCode(void);
  HRESULT         __fastcall get_AnswerWizard(Office_xp::AnswerWizard** AnswerWizard/*[out,retval]*/);
  Office_xp::AnswerWizardPtr __fastcall get_AnswerWizard(void);
  HRESULT         __fastcall get_FeatureInstall(Office_xp::MsoFeatureInstall* FeatureInstall/*[out,retval]*/);
  Office_xp::MsoFeatureInstall __fastcall get_FeatureInstall(void);
  HRESULT         __fastcall set_FeatureInstall(Office_xp::MsoFeatureInstall FeatureInstall/*[in]*/);
  HRESULT         __fastcall ActiveWindow(LPDISPATCH* ActiveWindow/*[out,retval]*/);
  LPDISPATCH      __fastcall ActiveWindow(void);
  HRESULT         __fastcall CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/, 
                                      LPDISPATCH* DocItem/*[out,retval]*/);
  LPDISPATCH      __fastcall CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/);
  HRESULT         __fastcall AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                            VARIANT SearchSubFolders/*[in,opt]*/, 
                                            VARIANT Tag/*[in,opt]*/, 
                                            Outlook_xp::Search** AdvancedSearch/*[out,retval]*/);
  Outlook_xp::Search* __fastcall AdvancedSearch(BSTR Scope/*[in]*/, 
                                                VARIANT Filter/*[in,opt]*/= TNoParam(), 
                                                VARIANT SearchSubFolders/*[in,opt]*/= TNoParam(), 
                                                VARIANT Tag/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall IsSearchSynchronous(BSTR LookInFolders/*[in]*/, 
                                                 VARIANT_BOOL* IsSearchSynchronous/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsSearchSynchronous(BSTR LookInFolders/*[in]*/);
  HRESULT         __fastcall GetNewNickNames(VARIANT* pvar/*[in]*/);
  HRESULT         __fastcall get_Reminders(Outlook_xp::_Reminders** Reminders/*[out,retval]*/);
  Outlook_xp::_RemindersPtr __fastcall get_Reminders(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::AssistantPtr Assistant = {read = get_Assistant};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Version = {read = get_Version};
  __property   Office_xp::COMAddInsPtr COMAddIns = {read = get_COMAddIns};
  __property   Outlook_xp::_ExplorersPtr Explorers = {read = get_Explorers};
  __property   Outlook_xp::_InspectorsPtr Inspectors = {read = get_Inspectors};
  __property   Office_xp::LanguageSettingsPtr LanguageSettings = {read = get_LanguageSettings};
  __property   BSTR            ProductCode = {read = get_ProductCode};
  __property   Office_xp::AnswerWizardPtr AnswerWizard = {read = get_AnswerWizard};
  __property   Office_xp::MsoFeatureInstall FeatureInstall = {read = get_FeatureInstall, write = set_FeatureInstall};
  __property   Outlook_xp::_RemindersPtr Reminders = {read = get_Reminders};
};
typedef _ApplicationDispT<_Application> _ApplicationDisp;

// *********************************************************************//
// SmartIntf: TCOM_NameSpace
// Interface: _NameSpace
// *********************************************************************//
template <class T /* _NameSpace */ >
class TCOM_NameSpaceT : public TComInterface<_NameSpace>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_NameSpaceT() {}
  TCOM_NameSpaceT(_NameSpace *intf, bool addRef = false) : TComInterface<_NameSpace>(intf, addRef) {}
  TCOM_NameSpaceT(const TCOM_NameSpaceT& src) : TComInterface<_NameSpace>(src) {}
  TCOM_NameSpaceT& operator=(const TCOM_NameSpaceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CurrentUser(Outlook_xp::Recipient** CurrentUser/*[out,retval]*/);
  Outlook_xp::RecipientPtr __fastcall get_CurrentUser(void);
  HRESULT         __fastcall get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/);
  Outlook_xp::_FoldersPtr __fastcall get_Folders(void);
  HRESULT         __fastcall get_Type(BSTR* Type/*[out,retval]*/);
  BSTR            __fastcall get_Type(void);
  HRESULT         __fastcall get_AddressLists(Outlook_xp::AddressLists** AddressLists/*[out,retval]*/);
  Outlook_xp::AddressListsPtr __fastcall get_AddressLists(void);
  HRESULT         __fastcall CreateRecipient(BSTR RecipientName/*[in]*/, 
                                             Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall CreateRecipient(BSTR RecipientName/*[in]*/);
  HRESULT         __fastcall GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                              Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/);
  HRESULT         __fastcall GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                             VARIANT EntryIDStore/*[in,opt]*/, 
                                             Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                                     VARIANT EntryIDStore/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                           VARIANT EntryIDStore/*[in,opt]*/, 
                                           LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                           VARIANT EntryIDStore/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetRecipientFromID(BSTR EntryID/*[in]*/, 
                                                Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall GetRecipientFromID(BSTR EntryID/*[in]*/);
  HRESULT         __fastcall GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                    Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                            Outlook_xp::OlDefaultFolders FolderType/*[in]*/);
  HRESULT         __fastcall Logoff(void);
  HRESULT         __fastcall Logon(VARIANT Profile/*[in,opt]*/= TNoParam(), 
                                   VARIANT Password/*[in,opt]*/= TNoParam(), 
                                   VARIANT ShowDialog/*[in,opt]*/= TNoParam(), 
                                   VARIANT NewSession/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall PickFolder(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall PickFolder(void);
  HRESULT         __fastcall RefreshRemoteHeaders(void);
  HRESULT         __fastcall get_SyncObjects(Outlook_xp::SyncObjects** SyncObjects/*[out,retval]*/);
  Outlook_xp::SyncObjectsPtr __fastcall get_SyncObjects(void);
  HRESULT         __fastcall AddStore(VARIANT Store/*[in]*/);
  HRESULT         __fastcall RemoveStore(Outlook_xp::MAPIFolder* Folder/*[in]*/);
  HRESULT         __fastcall get_Offline(VARIANT_BOOL* Offline/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Offline(void);
  HRESULT         __fastcall Dial(VARIANT ContactItem/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::RecipientPtr CurrentUser = {read = get_CurrentUser};
  __property   Outlook_xp::_FoldersPtr Folders = {read = get_Folders};
  __property   BSTR            Type = {read = get_Type};
  __property   Outlook_xp::AddressListsPtr AddressLists = {read = get_AddressLists};
  __property   Outlook_xp::SyncObjectsPtr SyncObjects = {read = get_SyncObjects};
  __property   VARIANT_BOOL    Offline = {read = get_Offline};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
};
typedef TCOM_NameSpaceT<_NameSpace> TCOM_NameSpace;

// *********************************************************************//
// DispIntf:  _NameSpace
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063002-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _NameSpaceDispT : public TAutoDriver<_NameSpace>
{
public:
  _NameSpaceDispT(){}

  _NameSpaceDispT(_NameSpace *pintf)
  {
    TAutoDriver<_NameSpace>::Bind(pintf, false);
  }

  _NameSpaceDispT(_NameSpacePtr pintf)
  {
    TAutoDriver<_NameSpace>::Bind(pintf, true);
  }

  _NameSpaceDispT& operator=(_NameSpace *pintf)
  {
    TAutoDriver<_NameSpace>::Bind(pintf, false);
    return *this;
  }

  _NameSpaceDispT& operator=(_NameSpacePtr pintf)
  {
    TAutoDriver<_NameSpace>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_NameSpace));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_NameSpace);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CurrentUser(Outlook_xp::Recipient** CurrentUser/*[out,retval]*/);
  Outlook_xp::RecipientPtr __fastcall get_CurrentUser(void);
  HRESULT         __fastcall get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/);
  Outlook_xp::_FoldersPtr __fastcall get_Folders(void);
  HRESULT         __fastcall get_Type(BSTR* Type/*[out,retval]*/);
  BSTR            __fastcall get_Type(void);
  HRESULT         __fastcall get_AddressLists(Outlook_xp::AddressLists** AddressLists/*[out,retval]*/);
  Outlook_xp::AddressListsPtr __fastcall get_AddressLists(void);
  HRESULT         __fastcall CreateRecipient(BSTR RecipientName/*[in]*/, 
                                             Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall CreateRecipient(BSTR RecipientName/*[in]*/);
  HRESULT         __fastcall GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                              Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/);
  HRESULT         __fastcall GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                             VARIANT EntryIDStore/*[in,opt]*/, 
                                             Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetFolderFromID(BSTR EntryIDFolder/*[in]*/, 
                                                     VARIANT EntryIDStore/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                           VARIANT EntryIDStore/*[in,opt]*/, 
                                           LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetItemFromID(BSTR EntryIDItem/*[in]*/, 
                                           VARIANT EntryIDStore/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetRecipientFromID(BSTR EntryID/*[in]*/, 
                                                Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall GetRecipientFromID(BSTR EntryID/*[in]*/);
  HRESULT         __fastcall GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                    Outlook_xp::OlDefaultFolders FolderType/*[in]*/
                                                    , 
                                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                                            Outlook_xp::OlDefaultFolders FolderType/*[in]*/);
  HRESULT         __fastcall Logoff();
  HRESULT         __fastcall Logon(VARIANT Profile/*[in,opt]*/= TNoParam(), 
                                   VARIANT Password/*[in,opt]*/= TNoParam(), 
                                   VARIANT ShowDialog/*[in,opt]*/= TNoParam(), 
                                   VARIANT NewSession/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall PickFolder(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall PickFolder(void);
  HRESULT         __fastcall RefreshRemoteHeaders();
  HRESULT         __fastcall get_SyncObjects(Outlook_xp::SyncObjects** SyncObjects/*[out,retval]*/);
  Outlook_xp::SyncObjectsPtr __fastcall get_SyncObjects(void);
  HRESULT         __fastcall AddStore(VARIANT Store/*[in]*/);
  HRESULT         __fastcall RemoveStore(Outlook_xp::MAPIFolder* Folder/*[in]*/);
  HRESULT         __fastcall get_Offline(VARIANT_BOOL* Offline/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Offline(void);
  HRESULT         __fastcall Dial(VARIANT ContactItem/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::RecipientPtr CurrentUser = {read = get_CurrentUser};
  __property   Outlook_xp::_FoldersPtr Folders = {read = get_Folders};
  __property   BSTR            Type = {read = get_Type};
  __property   Outlook_xp::AddressListsPtr AddressLists = {read = get_AddressLists};
  __property   Outlook_xp::SyncObjectsPtr SyncObjects = {read = get_SyncObjects};
  __property   VARIANT_BOOL    Offline = {read = get_Offline};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
};
typedef _NameSpaceDispT<_NameSpace> _NameSpaceDisp;

typedef TComInterface<Recipient>  TCOMRecipient;

// *********************************************************************//
// DispIntf:  Recipient
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063045-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class RecipientDispT : public TAutoDriver<Recipient>
{
public:
  RecipientDispT(){}

  RecipientDispT(Recipient *pintf)
  {
    TAutoDriver<Recipient>::Bind(pintf, false);
  }

  RecipientDispT(RecipientPtr pintf)
  {
    TAutoDriver<Recipient>::Bind(pintf, true);
  }

  RecipientDispT& operator=(Recipient *pintf)
  {
    TAutoDriver<Recipient>::Bind(pintf, false);
    return *this;
  }

  RecipientDispT& operator=(RecipientPtr pintf)
  {
    TAutoDriver<Recipient>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Address(BSTR* Address/*[out,retval]*/);
  BSTR            __fastcall get_Address(void);
  HRESULT         __fastcall get_AddressEntry(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/);
  Outlook_xp::AddressEntryPtr __fastcall get_AddressEntry(void);
  HRESULT         __fastcall _set_AddressEntry(Outlook_xp::AddressEntry* AddressEntry/*[in]*/);
  HRESULT         __fastcall get_AutoResponse(BSTR* AutoResponse/*[out,retval]*/);
  BSTR            __fastcall get_AutoResponse(void);
  HRESULT         __fastcall set_AutoResponse(BSTR AutoResponse/*[in]*/);
  HRESULT         __fastcall get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/);
  Outlook_xp::OlDisplayType __fastcall get_DisplayType(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_Index(long* Index/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall get_MeetingResponseStatus(Outlook_xp::OlResponseStatus* MeetingResponseStatus/*[out,retval]*/);
  Outlook_xp::OlResponseStatus __fastcall get_MeetingResponseStatus(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Resolved(VARIANT_BOOL* Resolved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Resolved(void);
  HRESULT         __fastcall get_TrackingStatus(Outlook_xp::OlTrackingStatus* TrackingStatus/*[out,retval]*/);
  Outlook_xp::OlTrackingStatus __fastcall get_TrackingStatus(void);
  HRESULT         __fastcall set_TrackingStatus(Outlook_xp::OlTrackingStatus TrackingStatus/*[in]*/);
  HRESULT         __fastcall get_TrackingStatusTime(DATE* TrackingStatusTime/*[out,retval]*/);
  DATE            __fastcall get_TrackingStatusTime(void);
  HRESULT         __fastcall set_TrackingStatusTime(DATE TrackingStatusTime/*[in]*/);
  HRESULT         __fastcall get_Type(long* Type/*[out,retval]*/);
  long            __fastcall get_Type(void);
  HRESULT         __fastcall set_Type(long Type/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                      VARIANT CompleteFormat/*[in,opt]*/, 
                                      BSTR* FreeBusyInfo/*[out,retval]*/);
  BSTR            __fastcall FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                      VARIANT CompleteFormat/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Resolve(VARIANT_BOOL* Success/*[out,retval]*/);
  VARIANT_BOOL    __fastcall Resolve(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Address = {read = get_Address};
  __property   Outlook_xp::AddressEntryPtr AddressEntry = {read = get_AddressEntry};
  __property   BSTR            AutoResponse = {read = get_AutoResponse, write = set_AutoResponse};
  __property   Outlook_xp::OlDisplayType DisplayType = {read = get_DisplayType};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   long            Index = {read = get_Index};
  __property   Outlook_xp::OlResponseStatus MeetingResponseStatus = {read = get_MeetingResponseStatus};
  __property   BSTR            Name = {read = get_Name};
  __property   VARIANT_BOOL    Resolved = {read = get_Resolved};
  __property   Outlook_xp::OlTrackingStatus TrackingStatus = {read = get_TrackingStatus, write = set_TrackingStatus};
  __property   DATE            TrackingStatusTime = {read = get_TrackingStatusTime, write = set_TrackingStatusTime};
  __property   long            Type = {read = get_Type, write = set_Type};
};
typedef RecipientDispT<Recipient> RecipientDisp;

typedef TComInterface<AddressEntry>  TCOMAddressEntry;

// *********************************************************************//
// DispIntf:  AddressEntry
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304B-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AddressEntryDispT : public TAutoDriver<AddressEntry>
{
public:
  AddressEntryDispT(){}

  AddressEntryDispT(AddressEntry *pintf)
  {
    TAutoDriver<AddressEntry>::Bind(pintf, false);
  }

  AddressEntryDispT(AddressEntryPtr pintf)
  {
    TAutoDriver<AddressEntry>::Bind(pintf, true);
  }

  AddressEntryDispT& operator=(AddressEntry *pintf)
  {
    TAutoDriver<AddressEntry>::Bind(pintf, false);
    return *this;
  }

  AddressEntryDispT& operator=(AddressEntryPtr pintf)
  {
    TAutoDriver<AddressEntry>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Address(BSTR* Address/*[out,retval]*/);
  BSTR            __fastcall get_Address(void);
  HRESULT         __fastcall set_Address(BSTR Address/*[in]*/);
  HRESULT         __fastcall get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/);
  Outlook_xp::OlDisplayType __fastcall get_DisplayType(void);
  HRESULT         __fastcall get_ID(BSTR* ID/*[out,retval]*/);
  BSTR            __fastcall get_ID(void);
  HRESULT         __fastcall get_Manager(Outlook_xp::AddressEntry** Manager/*[out,retval]*/);
  Outlook_xp::AddressEntryPtr __fastcall get_Manager(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall set_MAPIOBJECT(LPUNKNOWN MAPIOBJECT/*[in]*/);
  HRESULT         __fastcall get_Members(Outlook_xp::AddressEntries** Members/*[out,retval]*/);
  Outlook_xp::AddressEntriesPtr __fastcall get_Members(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_Type(BSTR* Type/*[out,retval]*/);
  BSTR            __fastcall get_Type(void);
  HRESULT         __fastcall set_Type(BSTR Type/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Details(VARIANT HWnd/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                         VARIANT CompleteFormat/*[in,opt]*/, 
                                         BSTR* FreeBusyInfo/*[out,retval]*/);
  BSTR            __fastcall GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                         VARIANT CompleteFormat/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall _Update(VARIANT MakePermanent/*[in,opt]*/= TNoParam(), 
                                     VARIANT Refresh/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall UpdateFreeBusy();

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Address = {read = get_Address, write = set_Address};
  __property   Outlook_xp::OlDisplayType DisplayType = {read = get_DisplayType};
  __property   BSTR            ID = {read = get_ID};
  __property   Outlook_xp::AddressEntryPtr Manager = {read = get_Manager};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT, write = set_MAPIOBJECT};
  __property   Outlook_xp::AddressEntriesPtr Members = {read = get_Members};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Type = {read = get_Type, write = set_Type};
};
typedef AddressEntryDispT<AddressEntry> AddressEntryDisp;

typedef TComInterface<AddressEntries>  TCOMAddressEntries;

// *********************************************************************//
// DispIntf:  AddressEntries
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304A-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AddressEntriesDispT : public TAutoDriver<AddressEntries>
{
public:
  AddressEntriesDispT(){}

  AddressEntriesDispT(AddressEntries *pintf)
  {
    TAutoDriver<AddressEntries>::Bind(pintf, false);
  }

  AddressEntriesDispT(AddressEntriesPtr pintf)
  {
    TAutoDriver<AddressEntries>::Bind(pintf, true);
  }

  AddressEntriesDispT& operator=(AddressEntries *pintf)
  {
    TAutoDriver<AddressEntries>::Bind(pintf, false);
    return *this;
  }

  AddressEntriesDispT& operator=(AddressEntriesPtr pintf)
  {
    TAutoDriver<AddressEntries>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::AddressEntry** Item/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/, 
                                 VARIANT Address/*[in,opt]*/, 
                                 Outlook_xp::AddressEntry** Entry/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/= TNoParam(), 
                                           VARIANT Address/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetFirst(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/);
  Outlook_xp::AddressEntry* __fastcall GetPrevious(void);
  HRESULT         __fastcall Sort(VARIANT Property/*[in,opt]*/= TNoParam(), 
                                  VARIANT Order/*[in,opt]*/= TNoParam());

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
};
typedef AddressEntriesDispT<AddressEntries> AddressEntriesDisp;

// *********************************************************************//
// SmartIntf: TCOM_Folders
// Interface: _Folders
// *********************************************************************//
template <class T /* _Folders */ >
class TCOM_FoldersT : public TComInterface<_Folders>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_FoldersT() {}
  TCOM_FoldersT(_Folders *intf, bool addRef = false) : TComInterface<_Folders>(intf, addRef) {}
  TCOM_FoldersT(const TCOM_FoldersT& src) : TComInterface<_Folders>(src) {}
  TCOM_FoldersT& operator=(const TCOM_FoldersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::MAPIFolder** Item/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/, 
                                 Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetFirst(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetPrevious(void);
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
};
typedef TCOM_FoldersT<_Folders> TCOM_Folders;

// *********************************************************************//
// DispIntf:  _Folders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063040-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _FoldersDispT : public TAutoDriver<_Folders>
{
public:
  _FoldersDispT(){}

  _FoldersDispT(_Folders *pintf)
  {
    TAutoDriver<_Folders>::Bind(pintf, false);
  }

  _FoldersDispT(_FoldersPtr pintf)
  {
    TAutoDriver<_Folders>::Bind(pintf, true);
  }

  _FoldersDispT& operator=(_Folders *pintf)
  {
    TAutoDriver<_Folders>::Bind(pintf, false);
    return *this;
  }

  _FoldersDispT& operator=(_FoldersPtr pintf)
  {
    TAutoDriver<_Folders>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Folders));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Folders);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::MAPIFolder** Item/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/, 
                                 Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetFirst(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall GetPrevious(void);
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
};
typedef _FoldersDispT<_Folders> _FoldersDisp;

typedef TComInterface<MAPIFolder>  TCOMMAPIFolder;

// *********************************************************************//
// DispIntf:  MAPIFolder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063006-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class MAPIFolderDispT : public TAutoDriver<MAPIFolder>
{
public:
  MAPIFolderDispT(){}

  MAPIFolderDispT(MAPIFolder *pintf)
  {
    TAutoDriver<MAPIFolder>::Bind(pintf, false);
  }

  MAPIFolderDispT(MAPIFolderPtr pintf)
  {
    TAutoDriver<MAPIFolder>::Bind(pintf, true);
  }

  MAPIFolderDispT& operator=(MAPIFolder *pintf)
  {
    TAutoDriver<MAPIFolder>::Bind(pintf, false);
    return *this;
  }

  MAPIFolderDispT& operator=(MAPIFolderPtr pintf)
  {
    TAutoDriver<MAPIFolder>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/);
  Outlook_xp::OlItemType __fastcall get_DefaultItemType(void);
  HRESULT         __fastcall get_DefaultMessageClass(BSTR* DefaultMessageClass/*[out,retval]*/);
  BSTR            __fastcall get_DefaultMessageClass(void);
  HRESULT         __fastcall get_Description(BSTR* Description/*[out,retval]*/);
  BSTR            __fastcall get_Description(void);
  HRESULT         __fastcall set_Description(BSTR Description/*[in]*/);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/);
  Outlook_xp::_FoldersPtr __fastcall get_Folders(void);
  HRESULT         __fastcall get_Items(Outlook_xp::_Items** Items/*[out,retval]*/);
  Outlook_xp::_ItemsPtr __fastcall get_Items(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_StoreID(BSTR* StoreID/*[out,retval]*/);
  BSTR            __fastcall get_StoreID(void);
  HRESULT         __fastcall get_UnReadItemCount(long* UnReadItemCount/*[out,retval]*/);
  long            __fastcall get_UnReadItemCount(void);
  HRESULT         __fastcall CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/, 
                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/);
  Outlook_xp::MAPIFolder* __fastcall CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display();
  HRESULT         __fastcall GetExplorer(VARIANT DisplayMode/*[in,opt]*/, 
                                         Outlook_xp::_Explorer** Explorer/*[out,retval]*/);
  Outlook_xp::_Explorer* __fastcall GetExplorer(VARIANT DisplayMode/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall MoveTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/);
  HRESULT         __fastcall get_UserPermissions(LPDISPATCH* UserPermissions/*[out,retval]*/);
  LPDISPATCH      __fastcall get_UserPermissions(void);
  HRESULT         __fastcall get_WebViewOn(VARIANT_BOOL* WebViewOn/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_WebViewOn(void);
  HRESULT         __fastcall set_WebViewOn(VARIANT_BOOL WebViewOn/*[in]*/);
  HRESULT         __fastcall get_WebViewURL(BSTR* WebViewURL/*[out,retval]*/);
  BSTR            __fastcall get_WebViewURL(void);
  HRESULT         __fastcall set_WebViewURL(BSTR WebViewURL/*[in]*/);
  HRESULT         __fastcall get_WebViewAllowNavigation(VARIANT_BOOL* WebViewAllowNavigation/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_WebViewAllowNavigation(void);
  HRESULT         __fastcall set_WebViewAllowNavigation(VARIANT_BOOL WebViewAllowNavigation/*[in]*/);
  HRESULT         __fastcall AddToPFFavorites();
  HRESULT         __fastcall get_AddressBookName(BSTR* AddressBookName/*[out,retval]*/);
  BSTR            __fastcall get_AddressBookName(void);
  HRESULT         __fastcall set_AddressBookName(BSTR AddressBookName/*[in]*/);
  HRESULT         __fastcall get_ShowAsOutlookAB(VARIANT_BOOL* ShowAsOutlookAB/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ShowAsOutlookAB(void);
  HRESULT         __fastcall set_ShowAsOutlookAB(VARIANT_BOOL ShowAsOutlookAB/*[in]*/);
  HRESULT         __fastcall get_FolderPath(BSTR* FolderPath/*[out,retval]*/);
  BSTR            __fastcall get_FolderPath(void);
  HRESULT         __fastcall AddToFavorites(VARIANT fNoUI/*[in,opt]*/= TNoParam(), 
                                            VARIANT Name/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_InAppFolderSyncObject(VARIANT_BOOL* InAppFolderSyncObject/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_InAppFolderSyncObject(void);
  HRESULT         __fastcall set_InAppFolderSyncObject(VARIANT_BOOL InAppFolderSyncObject/*[in]*/);
  HRESULT         __fastcall get_CurrentView(Outlook_xp::View** CurrentView/*[out,retval]*/);
  Outlook_xp::ViewPtr __fastcall get_CurrentView(void);
  HRESULT         __fastcall get_CustomViewsOnly(VARIANT_BOOL* CustomViewsOnly/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_CustomViewsOnly(void);
  HRESULT         __fastcall set_CustomViewsOnly(VARIANT_BOOL CustomViewsOnly/*[in]*/);
  HRESULT         __fastcall get_Views(Outlook_xp::_Views** Views/*[out,retval]*/);
  Outlook_xp::_ViewsPtr __fastcall get_Views(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_FullFolderPath(BSTR* FullFolderPath/*[out,retval]*/);
  BSTR            __fastcall get_FullFolderPath(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OlItemType DefaultItemType = {read = get_DefaultItemType};
  __property   BSTR            DefaultMessageClass = {read = get_DefaultMessageClass};
  __property   BSTR            Description = {read = get_Description, write = set_Description};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::_FoldersPtr Folders = {read = get_Folders};
  __property   Outlook_xp::_ItemsPtr Items = {read = get_Items};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            StoreID = {read = get_StoreID};
  __property   long            UnReadItemCount = {read = get_UnReadItemCount};
  __property   LPDISPATCH      UserPermissions = {read = get_UserPermissions};
  __property   VARIANT_BOOL    WebViewOn = {read = get_WebViewOn, write = set_WebViewOn};
  __property   BSTR            WebViewURL = {read = get_WebViewURL, write = set_WebViewURL};
  __property   VARIANT_BOOL    WebViewAllowNavigation = {read = get_WebViewAllowNavigation, write = set_WebViewAllowNavigation};
  __property   BSTR            AddressBookName = {read = get_AddressBookName, write = set_AddressBookName};
  __property   VARIANT_BOOL    ShowAsOutlookAB = {read = get_ShowAsOutlookAB, write = set_ShowAsOutlookAB};
  __property   BSTR            FolderPath = {read = get_FolderPath};
  __property   VARIANT_BOOL    InAppFolderSyncObject = {read = get_InAppFolderSyncObject, write = set_InAppFolderSyncObject};
  __property   Outlook_xp::ViewPtr CurrentView = {read = get_CurrentView};
  __property   VARIANT_BOOL    CustomViewsOnly = {read = get_CustomViewsOnly, write = set_CustomViewsOnly};
  __property   Outlook_xp::_ViewsPtr Views = {read = get_Views};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            FullFolderPath = {read = get_FullFolderPath};
};
typedef MAPIFolderDispT<MAPIFolder> MAPIFolderDisp;

// *********************************************************************//
// SmartIntf: TCOM_Items
// Interface: _Items
// *********************************************************************//
template <class T /* _Items */ >
class TCOM_ItemsT : public TComInterface<_Items>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ItemsT() {}
  TCOM_ItemsT(_Items *intf, bool addRef = false) : TComInterface<_Items>(intf, addRef) {}
  TCOM_ItemsT(const TCOM_ItemsT& src) : TComInterface<_Items>(src) {}
  TCOM_ItemsT& operator=(const TCOM_ItemsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall get_IncludeRecurrences(VARIANT_BOOL* IncludeRecurrences/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IncludeRecurrences(void);
  HRESULT         __fastcall set_IncludeRecurrences(VARIANT_BOOL IncludeRecurrences/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Type/*[in,opt]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Add(VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Find(BSTR Filter/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Find(BSTR Filter/*[in]*/);
  HRESULT         __fastcall FindNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall FindNext(void);
  HRESULT         __fastcall GetFirst(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetPrevious(void);
  HRESULT         __fastcall Remove(long Index/*[in]*/);
  HRESULT         __fastcall ResetColumns(void);
  HRESULT         __fastcall Restrict(BSTR Filter/*[in]*/, 
                                      Outlook_xp::_Items** Items/*[out,retval]*/);
  Outlook_xp::_Items* __fastcall Restrict(BSTR Filter/*[in]*/);
  HRESULT         __fastcall SetColumns(BSTR Columns/*[in]*/);
  HRESULT         __fastcall Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/= TNoParam());

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   VARIANT_BOOL    IncludeRecurrences = {read = get_IncludeRecurrences, write = set_IncludeRecurrences};
};
typedef TCOM_ItemsT<_Items> TCOM_Items;

// *********************************************************************//
// DispIntf:  _Items
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063041-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ItemsDispT : public TAutoDriver<_Items>
{
public:
  _ItemsDispT(){}

  _ItemsDispT(_Items *pintf)
  {
    TAutoDriver<_Items>::Bind(pintf, false);
  }

  _ItemsDispT(_ItemsPtr pintf)
  {
    TAutoDriver<_Items>::Bind(pintf, true);
  }

  _ItemsDispT& operator=(_Items *pintf)
  {
    TAutoDriver<_Items>::Bind(pintf, false);
    return *this;
  }

  _ItemsDispT& operator=(_ItemsPtr pintf)
  {
    TAutoDriver<_Items>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Items));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Items);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall get_IncludeRecurrences(VARIANT_BOOL* IncludeRecurrences/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IncludeRecurrences(void);
  HRESULT         __fastcall set_IncludeRecurrences(VARIANT_BOOL IncludeRecurrences/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Type/*[in,opt]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Add(VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Find(BSTR Filter/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Find(BSTR Filter/*[in]*/);
  HRESULT         __fastcall FindNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall FindNext(void);
  HRESULT         __fastcall GetFirst(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetPrevious(void);
  HRESULT         __fastcall Remove(long Index/*[in]*/);
  HRESULT         __fastcall ResetColumns();
  HRESULT         __fastcall Restrict(BSTR Filter/*[in]*/, 
                                      Outlook_xp::_Items** Items/*[out,retval]*/);
  Outlook_xp::_Items* __fastcall Restrict(BSTR Filter/*[in]*/);
  HRESULT         __fastcall SetColumns(BSTR Columns/*[in]*/);
  HRESULT         __fastcall Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/= TNoParam());

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   VARIANT_BOOL    IncludeRecurrences = {read = get_IncludeRecurrences, write = set_IncludeRecurrences};
};
typedef _ItemsDispT<_Items> _ItemsDisp;

// *********************************************************************//
// SmartIntf: TCOM_Explorer
// Interface: _Explorer
// *********************************************************************//
template <class T /* _Explorer */ >
class TCOM_ExplorerT : public TComInterface<_Explorer>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ExplorerT() {}
  TCOM_ExplorerT(_Explorer *intf, bool addRef = false) : TComInterface<_Explorer>(intf, addRef) {}
  TCOM_ExplorerT(const TCOM_ExplorerT& src) : TComInterface<_Explorer>(src) {}
  TCOM_ExplorerT& operator=(const TCOM_ExplorerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/);
  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void);
  HRESULT         __fastcall get_CurrentFolder(Outlook_xp::MAPIFolder** CurrentFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_CurrentFolder(void);
  HRESULT         __fastcall _set_CurrentFolder(Outlook_xp::MAPIFolder* CurrentFolder/*[in]*/);
  HRESULT         __fastcall Close(void);
  HRESULT         __fastcall Display(void);
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_CurrentView(VARIANT* CurrentView/*[out,retval]*/);
  VARIANT         __fastcall get_CurrentView(void);
  HRESULT         __fastcall set_CurrentView(VARIANT CurrentView/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_Panes(Outlook_xp::Panes** Panes/*[out,retval]*/);
  Outlook_xp::PanesPtr __fastcall get_Panes(void);
  HRESULT         __fastcall get_Selection(Outlook_xp::Selection** Selection/*[out,retval]*/);
  Outlook_xp::SelectionPtr __fastcall get_Selection(void);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/);
  Outlook_xp::OlWindowState __fastcall get_WindowState(void);
  HRESULT         __fastcall set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/);
  HRESULT         __fastcall Activate(void);
  HRESULT         __fastcall IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/, 
                                           VARIANT_BOOL* IsPaneVisible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/);
  HRESULT         __fastcall ShowPane(Outlook_xp::OlPane Pane/*[in]*/, VARIANT_BOOL Visible/*[in]*/);
  HRESULT         __fastcall get_Views(LPDISPATCH* Views/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Views(void);
  HRESULT         __fastcall get_HTMLDocument(LPDISPATCH* HTMLDocument/*[out,retval]*/);
  LPDISPATCH      __fastcall get_HTMLDocument(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   Outlook_xp::MAPIFolderPtr CurrentFolder = {read = get_CurrentFolder};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   Outlook_xp::PanesPtr Panes = {read = get_Panes};
  __property   Outlook_xp::SelectionPtr Selection = {read = get_Selection};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};
  __property   LPDISPATCH      Views = {read = get_Views};
  __property   LPDISPATCH      HTMLDocument = {read = get_HTMLDocument};
};
typedef TCOM_ExplorerT<_Explorer> TCOM_Explorer;

// *********************************************************************//
// DispIntf:  _Explorer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063003-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ExplorerDispT : public TAutoDriver<_Explorer>
{
public:
  _ExplorerDispT(){}

  _ExplorerDispT(_Explorer *pintf)
  {
    TAutoDriver<_Explorer>::Bind(pintf, false);
  }

  _ExplorerDispT(_ExplorerPtr pintf)
  {
    TAutoDriver<_Explorer>::Bind(pintf, true);
  }

  _ExplorerDispT& operator=(_Explorer *pintf)
  {
    TAutoDriver<_Explorer>::Bind(pintf, false);
    return *this;
  }

  _ExplorerDispT& operator=(_ExplorerPtr pintf)
  {
    TAutoDriver<_Explorer>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Explorer));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Explorer);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/);
  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void);
  HRESULT         __fastcall get_CurrentFolder(Outlook_xp::MAPIFolder** CurrentFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_CurrentFolder(void);
  HRESULT         __fastcall _set_CurrentFolder(Outlook_xp::MAPIFolder* CurrentFolder/*[in]*/);
  HRESULT         __fastcall Close();
  HRESULT         __fastcall Display();
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_CurrentView(VARIANT* CurrentView/*[out,retval]*/);
  VARIANT         __fastcall get_CurrentView(void);
  HRESULT         __fastcall set_CurrentView(VARIANT CurrentView/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_Panes(Outlook_xp::Panes** Panes/*[out,retval]*/);
  Outlook_xp::PanesPtr __fastcall get_Panes(void);
  HRESULT         __fastcall get_Selection(Outlook_xp::Selection** Selection/*[out,retval]*/);
  Outlook_xp::SelectionPtr __fastcall get_Selection(void);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/);
  Outlook_xp::OlWindowState __fastcall get_WindowState(void);
  HRESULT         __fastcall set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/);
  HRESULT         __fastcall Activate();
  HRESULT         __fastcall IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/, 
                                           VARIANT_BOOL* IsPaneVisible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/);
  HRESULT         __fastcall ShowPane(Outlook_xp::OlPane Pane/*[in]*/, VARIANT_BOOL Visible/*[in]*/);
  HRESULT         __fastcall get_Views(LPDISPATCH* Views/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Views(void);
  HRESULT         __fastcall get_HTMLDocument(LPDISPATCH* HTMLDocument/*[out,retval]*/);
  LPDISPATCH      __fastcall get_HTMLDocument(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   Outlook_xp::MAPIFolderPtr CurrentFolder = {read = get_CurrentFolder};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   Outlook_xp::PanesPtr Panes = {read = get_Panes};
  __property   Outlook_xp::SelectionPtr Selection = {read = get_Selection};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};
  __property   LPDISPATCH      Views = {read = get_Views};
  __property   LPDISPATCH      HTMLDocument = {read = get_HTMLDocument};
};
typedef _ExplorerDispT<_Explorer> _ExplorerDisp;

typedef TComInterface<Panes>  TCOMPanes;

// *********************************************************************//
// DispIntf:  Panes
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063009-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class PanesDispT : public TAutoDriver<Panes>
{
public:
  PanesDispT(){}

  PanesDispT(Panes *pintf)
  {
    TAutoDriver<Panes>::Bind(pintf, false);
  }

  PanesDispT(PanesPtr pintf)
  {
    TAutoDriver<Panes>::Bind(pintf, true);
  }

  PanesDispT& operator=(Panes *pintf)
  {
    TAutoDriver<Panes>::Bind(pintf, false);
    return *this;
  }

  PanesDispT& operator=(PanesPtr pintf)
  {
    TAutoDriver<Panes>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef PanesDispT<Panes> PanesDisp;

typedef TComInterface<Selection>  TCOMSelection;

// *********************************************************************//
// DispIntf:  Selection
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063087-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class SelectionDispT : public TAutoDriver<Selection>
{
public:
  SelectionDispT(){}

  SelectionDispT(Selection *pintf)
  {
    TAutoDriver<Selection>::Bind(pintf, false);
  }

  SelectionDispT(SelectionPtr pintf)
  {
    TAutoDriver<Selection>::Bind(pintf, true);
  }

  SelectionDispT& operator=(Selection *pintf)
  {
    TAutoDriver<Selection>::Bind(pintf, false);
    return *this;
  }

  SelectionDispT& operator=(SelectionPtr pintf)
  {
    TAutoDriver<Selection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef SelectionDispT<Selection> SelectionDisp;

typedef TComInterface<View>  TCOMView;

// *********************************************************************//
// DispIntf:  View
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063095-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ViewDispT : public TAutoDriver<View>
{
public:
  ViewDispT(){}

  ViewDispT(View *pintf)
  {
    TAutoDriver<View>::Bind(pintf, false);
  }

  ViewDispT(ViewPtr pintf)
  {
    TAutoDriver<View>::Bind(pintf, true);
  }

  ViewDispT& operator=(View *pintf)
  {
    TAutoDriver<View>::Bind(pintf, false);
    return *this;
  }

  ViewDispT& operator=(ViewPtr pintf)
  {
    TAutoDriver<View>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall Apply();
  HRESULT         __fastcall Copy(BSTR Name/*[in]*/, 
                                  Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                                  Outlook_xp::View** ppview/*[out,retval]*/);
  Outlook_xp::View* __fastcall Copy(BSTR Name/*[in]*/, 
                                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Reset();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall get_Language(BSTR* Language/*[out,retval]*/);
  BSTR            __fastcall get_Language(void);
  HRESULT         __fastcall set_Language(BSTR Language/*[in]*/);
  HRESULT         __fastcall get_LockUserChanges(VARIANT_BOOL* LockUserChanges/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_LockUserChanges(void);
  HRESULT         __fastcall set_LockUserChanges(VARIANT_BOOL LockUserChanges/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_SaveOption(Outlook_xp::OlViewSaveOption* SaveOption/*[out,retval]*/);
  Outlook_xp::OlViewSaveOption __fastcall get_SaveOption(void);
  HRESULT         __fastcall get_Standard(VARIANT_BOOL* Standard/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Standard(void);
  HRESULT         __fastcall get_ViewType(Outlook_xp::OlViewType* ViewType/*[out,retval]*/);
  Outlook_xp::OlViewType __fastcall get_ViewType(void);
  HRESULT         __fastcall get_XML(BSTR* XML/*[out,retval]*/);
  BSTR            __fastcall get_XML(void);
  HRESULT         __fastcall set_XML(BSTR XML/*[in]*/);
  HRESULT         __fastcall GoToDate(DATE Date/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Language = {read = get_Language, write = set_Language};
  __property   VARIANT_BOOL    LockUserChanges = {read = get_LockUserChanges, write = set_LockUserChanges};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Outlook_xp::OlViewSaveOption SaveOption = {read = get_SaveOption};
  __property   VARIANT_BOOL    Standard = {read = get_Standard};
  __property   Outlook_xp::OlViewType ViewType = {read = get_ViewType};
  __property   BSTR            XML = {read = get_XML, write = set_XML};
};
typedef ViewDispT<View> ViewDisp;

// *********************************************************************//
// SmartIntf: TCOM_Views
// Interface: _Views
// *********************************************************************//
template <class T /* _Views */ >
class TCOM_ViewsT : public TComInterface<_Views>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ViewsT() {}
  TCOM_ViewsT(_Views *intf, bool addRef = false) : TComInterface<_Views>(intf, addRef) {}
  TCOM_ViewsT(const TCOM_ViewsT& src) : TComInterface<_Views>(src) {}
  TCOM_ViewsT& operator=(const TCOM_ViewsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::View** Item/*[out,retval]*/);
  Outlook_xp::View* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                 Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                                 Outlook_xp::View** ppview/*[out,retval]*/);
  Outlook_xp::View* __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                   Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);
  HRESULT         __fastcall _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall _NewEnum(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_ViewsT<_Views> TCOM_Views;

// *********************************************************************//
// DispIntf:  _Views
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308D-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ViewsDispT : public TAutoDriver<_Views>
{
public:
  _ViewsDispT(){}

  _ViewsDispT(_Views *pintf)
  {
    TAutoDriver<_Views>::Bind(pintf, false);
  }

  _ViewsDispT(_ViewsPtr pintf)
  {
    TAutoDriver<_Views>::Bind(pintf, true);
  }

  _ViewsDispT& operator=(_Views *pintf)
  {
    TAutoDriver<_Views>::Bind(pintf, false);
    return *this;
  }

  _ViewsDispT& operator=(_ViewsPtr pintf)
  {
    TAutoDriver<_Views>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Views));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Views);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::View** Item/*[out,retval]*/);
  Outlook_xp::View* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                 Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                                 Outlook_xp::View** ppview/*[out,retval]*/);
  Outlook_xp::View* __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                                   Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);
  HRESULT         __fastcall _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall _NewEnum(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _ViewsDispT<_Views> _ViewsDisp;

typedef TComInterface<AddressLists>  TCOMAddressLists;

// *********************************************************************//
// DispIntf:  AddressLists
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063048-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AddressListsDispT : public TAutoDriver<AddressLists>
{
public:
  AddressListsDispT(){}

  AddressListsDispT(AddressLists *pintf)
  {
    TAutoDriver<AddressLists>::Bind(pintf, false);
  }

  AddressListsDispT(AddressListsPtr pintf)
  {
    TAutoDriver<AddressLists>::Bind(pintf, true);
  }

  AddressListsDispT& operator=(AddressLists *pintf)
  {
    TAutoDriver<AddressLists>::Bind(pintf, false);
    return *this;
  }

  AddressListsDispT& operator=(AddressListsPtr pintf)
  {
    TAutoDriver<AddressLists>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::AddressList** Item/*[out,retval]*/);
  Outlook_xp::AddressList* __fastcall Item(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef AddressListsDispT<AddressLists> AddressListsDisp;

typedef TComInterface<AddressList>  TCOMAddressList;

// *********************************************************************//
// DispIntf:  AddressList
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063049-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AddressListDispT : public TAutoDriver<AddressList>
{
public:
  AddressListDispT(){}

  AddressListDispT(AddressList *pintf)
  {
    TAutoDriver<AddressList>::Bind(pintf, false);
  }

  AddressListDispT(AddressListPtr pintf)
  {
    TAutoDriver<AddressList>::Bind(pintf, true);
  }

  AddressListDispT& operator=(AddressList *pintf)
  {
    TAutoDriver<AddressList>::Bind(pintf, false);
    return *this;
  }

  AddressListDispT& operator=(AddressListPtr pintf)
  {
    TAutoDriver<AddressList>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_AddressEntries(Outlook_xp::AddressEntries** AddressEntries/*[out,retval]*/);
  Outlook_xp::AddressEntriesPtr __fastcall get_AddressEntries(void);
  HRESULT         __fastcall get_ID(BSTR* ID/*[out,retval]*/);
  BSTR            __fastcall get_ID(void);
  HRESULT         __fastcall get_Index(long* Index/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall get_IsReadOnly(VARIANT_BOOL* IsReadOnly/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsReadOnly(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::AddressEntriesPtr AddressEntries = {read = get_AddressEntries};
  __property   BSTR            ID = {read = get_ID};
  __property   long            Index = {read = get_Index};
  __property   VARIANT_BOOL    IsReadOnly = {read = get_IsReadOnly};
  __property   BSTR            Name = {read = get_Name};
};
typedef AddressListDispT<AddressList> AddressListDisp;

typedef TComInterface<SyncObjects>  TCOMSyncObjects;

// *********************************************************************//
// DispIntf:  SyncObjects
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063086-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class SyncObjectsDispT : public TAutoDriver<SyncObjects>
{
public:
  SyncObjectsDispT(){}

  SyncObjectsDispT(SyncObjects *pintf)
  {
    TAutoDriver<SyncObjects>::Bind(pintf, false);
  }

  SyncObjectsDispT(SyncObjectsPtr pintf)
  {
    TAutoDriver<SyncObjects>::Bind(pintf, true);
  }

  SyncObjectsDispT& operator=(SyncObjects *pintf)
  {
    TAutoDriver<SyncObjects>::Bind(pintf, false);
    return *this;
  }

  SyncObjectsDispT& operator=(SyncObjectsPtr pintf)
  {
    TAutoDriver<SyncObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::SyncObject** Item/*[out,retval]*/);
  Outlook_xp::SyncObject* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_AppFolders(Outlook_xp::_SyncObject** AppFolders/*[out,retval]*/);
  Outlook_xp::_SyncObjectPtr __fastcall get_AppFolders(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   Outlook_xp::_SyncObjectPtr AppFolders = {read = get_AppFolders};
};
typedef SyncObjectsDispT<SyncObjects> SyncObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOM_SyncObject
// Interface: _SyncObject
// *********************************************************************//
template <class T /* _SyncObject */ >
class TCOM_SyncObjectT : public TComInterface<_SyncObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_SyncObjectT() {}
  TCOM_SyncObjectT(_SyncObject *intf, bool addRef = false) : TComInterface<_SyncObject>(intf, addRef) {}
  TCOM_SyncObjectT(const TCOM_SyncObjectT& src) : TComInterface<_SyncObject>(src) {}
  TCOM_SyncObjectT& operator=(const TCOM_SyncObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall Start(void);
  HRESULT         __fastcall Stop(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name};
};
typedef TCOM_SyncObjectT<_SyncObject> TCOM_SyncObject;

// *********************************************************************//
// DispIntf:  _SyncObject
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063083-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _SyncObjectDispT : public TAutoDriver<_SyncObject>
{
public:
  _SyncObjectDispT(){}

  _SyncObjectDispT(_SyncObject *pintf)
  {
    TAutoDriver<_SyncObject>::Bind(pintf, false);
  }

  _SyncObjectDispT(_SyncObjectPtr pintf)
  {
    TAutoDriver<_SyncObject>::Bind(pintf, true);
  }

  _SyncObjectDispT& operator=(_SyncObject *pintf)
  {
    TAutoDriver<_SyncObject>::Bind(pintf, false);
    return *this;
  }

  _SyncObjectDispT& operator=(_SyncObjectPtr pintf)
  {
    TAutoDriver<_SyncObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SyncObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SyncObject);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall Start();
  HRESULT         __fastcall Stop();

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name};
};
typedef _SyncObjectDispT<_SyncObject> _SyncObjectDisp;

// *********************************************************************//
// DispIntf:  SyncObjectEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063085-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class SyncObjectEventsDispT : public TAutoDriver<SyncObjectEvents>
{
public:
  SyncObjectEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall SyncStart();
  void            __fastcall Progress(Outlook_xp::OlSyncState State/*[in]*/, 
                                      BSTR Description/*[in]*/, long Value/*[in]*/, long Max/*[in]*/);
  void            __fastcall OnError(long Code/*[in]*/, BSTR Description/*[in]*/);
  void            __fastcall SyncEnd();

};
typedef SyncObjectEventsDispT<SyncObjectEvents> SyncObjectEventsDisp;

// *********************************************************************//
// SmartIntf: TCOM_Inspector
// Interface: _Inspector
// *********************************************************************//
template <class T /* _Inspector */ >
class TCOM_InspectorT : public TComInterface<_Inspector>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_InspectorT() {}
  TCOM_InspectorT(_Inspector *intf, bool addRef = false) : TComInterface<_Inspector>(intf, addRef) {}
  TCOM_InspectorT(const TCOM_InspectorT& src) : TComInterface<_Inspector>(src) {}
  TCOM_InspectorT& operator=(const TCOM_InspectorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/);
  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void);
  HRESULT         __fastcall get_CurrentItem(LPDISPATCH* CurrentItem/*[out,retval]*/);
  LPDISPATCH      __fastcall get_CurrentItem(void);
  HRESULT         __fastcall get_EditorType(Outlook_xp::OlEditorType* EditorType/*[out,retval]*/);
  Outlook_xp::OlEditorType __fastcall get_EditorType(void);
  HRESULT         __fastcall get_ModifiedFormPages(LPDISPATCH* ModifiedFormPages/*[out,retval]*/);
  LPDISPATCH      __fastcall get_ModifiedFormPages(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall HideFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall IsWordMail(VARIANT_BOOL* IsWordMail/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsWordMail(void);
  HRESULT         __fastcall SetCurrentFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall ShowFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall get_HTMLEditor(LPDISPATCH* HTMLEditor/*[out,retval]*/);
  LPDISPATCH      __fastcall get_HTMLEditor(void);
  HRESULT         __fastcall get_WordEditor(LPDISPATCH* WordEditor/*[out,retval]*/);
  LPDISPATCH      __fastcall get_WordEditor(void);
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/);
  Outlook_xp::OlWindowState __fastcall get_WindowState(void);
  HRESULT         __fastcall set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/);
  HRESULT         __fastcall Activate(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   LPDISPATCH      CurrentItem = {read = get_CurrentItem};
  __property   Outlook_xp::OlEditorType EditorType = {read = get_EditorType};
  __property   LPDISPATCH      ModifiedFormPages = {read = get_ModifiedFormPages};
  __property   LPDISPATCH      HTMLEditor = {read = get_HTMLEditor};
  __property   LPDISPATCH      WordEditor = {read = get_WordEditor};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};
};
typedef TCOM_InspectorT<_Inspector> TCOM_Inspector;

// *********************************************************************//
// DispIntf:  _Inspector
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063005-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _InspectorDispT : public TAutoDriver<_Inspector>
{
public:
  _InspectorDispT(){}

  _InspectorDispT(_Inspector *pintf)
  {
    TAutoDriver<_Inspector>::Bind(pintf, false);
  }

  _InspectorDispT(_InspectorPtr pintf)
  {
    TAutoDriver<_Inspector>::Bind(pintf, true);
  }

  _InspectorDispT& operator=(_Inspector *pintf)
  {
    TAutoDriver<_Inspector>::Bind(pintf, false);
    return *this;
  }

  _InspectorDispT& operator=(_InspectorPtr pintf)
  {
    TAutoDriver<_Inspector>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Inspector));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Inspector);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/);
  Office_xp::CommandBarsPtr __fastcall get_CommandBars(void);
  HRESULT         __fastcall get_CurrentItem(LPDISPATCH* CurrentItem/*[out,retval]*/);
  LPDISPATCH      __fastcall get_CurrentItem(void);
  HRESULT         __fastcall get_EditorType(Outlook_xp::OlEditorType* EditorType/*[out,retval]*/);
  Outlook_xp::OlEditorType __fastcall get_EditorType(void);
  HRESULT         __fastcall get_ModifiedFormPages(LPDISPATCH* ModifiedFormPages/*[out,retval]*/);
  LPDISPATCH      __fastcall get_ModifiedFormPages(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall HideFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall IsWordMail(VARIANT_BOOL* IsWordMail/*[out,retval]*/);
  VARIANT_BOOL    __fastcall IsWordMail(void);
  HRESULT         __fastcall SetCurrentFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall ShowFormPage(BSTR PageName/*[in]*/);
  HRESULT         __fastcall get_HTMLEditor(LPDISPATCH* HTMLEditor/*[out,retval]*/);
  LPDISPATCH      __fastcall get_HTMLEditor(void);
  HRESULT         __fastcall get_WordEditor(LPDISPATCH* WordEditor/*[out,retval]*/);
  LPDISPATCH      __fastcall get_WordEditor(void);
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/);
  Outlook_xp::OlWindowState __fastcall get_WindowState(void);
  HRESULT         __fastcall set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/);
  HRESULT         __fastcall Activate();

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Office_xp::CommandBarsPtr CommandBars = {read = get_CommandBars};
  __property   LPDISPATCH      CurrentItem = {read = get_CurrentItem};
  __property   Outlook_xp::OlEditorType EditorType = {read = get_EditorType};
  __property   LPDISPATCH      ModifiedFormPages = {read = get_ModifiedFormPages};
  __property   LPDISPATCH      HTMLEditor = {read = get_HTMLEditor};
  __property   LPDISPATCH      WordEditor = {read = get_WordEditor};
  __property   BSTR            Caption = {read = get_Caption};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::OlWindowState WindowState = {read = get_WindowState, write = set_WindowState};
};
typedef _InspectorDispT<_Inspector> _InspectorDisp;

// *********************************************************************//
// SmartIntf: TCOM_Explorers
// Interface: _Explorers
// *********************************************************************//
template <class T /* _Explorers */ >
class TCOM_ExplorersT : public TComInterface<_Explorers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ExplorersT() {}
  TCOM_ExplorersT(_Explorers *intf, bool addRef = false) : TComInterface<_Explorers>(intf, addRef) {}
  TCOM_ExplorersT(const TCOM_ExplorersT& src) : TComInterface<_Explorers>(src) {}
  TCOM_ExplorersT& operator=(const TCOM_ExplorersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::Explorer** Item/*[out,retval]*/);
  Outlook_xp::Explorer* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Folder/*[in]*/, 
                                 Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/, 
                                 Outlook_xp::_Explorer** Explorer/*[out,retval]*/);
  Outlook_xp::_Explorer* __fastcall Add(VARIANT Folder/*[in]*/, 
                                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_ExplorersT<_Explorers> TCOM_Explorers;

// *********************************************************************//
// DispIntf:  _Explorers
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300A-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ExplorersDispT : public TAutoDriver<_Explorers>
{
public:
  _ExplorersDispT(){}

  _ExplorersDispT(_Explorers *pintf)
  {
    TAutoDriver<_Explorers>::Bind(pintf, false);
  }

  _ExplorersDispT(_ExplorersPtr pintf)
  {
    TAutoDriver<_Explorers>::Bind(pintf, true);
  }

  _ExplorersDispT& operator=(_Explorers *pintf)
  {
    TAutoDriver<_Explorers>::Bind(pintf, false);
    return *this;
  }

  _ExplorersDispT& operator=(_ExplorersPtr pintf)
  {
    TAutoDriver<_Explorers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Explorers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Explorers);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::Explorer** Item/*[out,retval]*/);
  Outlook_xp::Explorer* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Folder/*[in]*/, 
                                 Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/, 
                                 Outlook_xp::_Explorer** Explorer/*[out,retval]*/);
  Outlook_xp::_Explorer* __fastcall Add(VARIANT Folder/*[in]*/, 
                                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _ExplorersDispT<_Explorers> _ExplorersDisp;

// *********************************************************************//
// DispIntf:  ExplorerEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304F-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ExplorerEventsDispT : public TAutoDriver<ExplorerEvents>
{
public:
  ExplorerEventsDispT(){}

  ExplorerEventsDispT(ExplorerEvents *pintf)
  {
    TAutoDriver<ExplorerEvents>::Bind(pintf, false);
  }

  ExplorerEventsDispT(ExplorerEventsPtr pintf)
  {
    TAutoDriver<ExplorerEvents>::Bind(pintf, true);
  }

  ExplorerEventsDispT& operator=(ExplorerEvents *pintf)
  {
    TAutoDriver<ExplorerEvents>::Bind(pintf, false);
    return *this;
  }

  ExplorerEventsDispT& operator=(ExplorerEventsPtr pintf)
  {
    TAutoDriver<ExplorerEvents>::Bind(pintf, true);
    return *this;
  }

  void            __fastcall Activate();
  void            __fastcall FolderSwitch();
  void            __fastcall BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, 
                                                VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall ViewSwitch();
  void            __fastcall BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall Deactivate();
  void            __fastcall SelectionChange();
  void            __fastcall Close();

};
typedef ExplorerEventsDispT<ExplorerEvents> ExplorerEventsDisp;

// *********************************************************************//
// DispIntf:  ExplorerEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300F-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ExplorerEvents_10DispT : public TAutoDriver<ExplorerEvents_10>
{
public:
  ExplorerEvents_10DispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  HRESULT         __fastcall Activate();
  HRESULT         __fastcall FolderSwitch();
  HRESULT         __fastcall BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, 
                                                VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall ViewSwitch();
  HRESULT         __fastcall BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall Deactivate();
  HRESULT         __fastcall SelectionChange();
  HRESULT         __fastcall Close();
  HRESULT         __fastcall BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeMove(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeSize(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeItemCopy(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeItemCut(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeItemPaste(VARIANT* ClipboardContent/*[in]*/, 
                                             Outlook_xp::MAPIFolder* Target/*[in]*/, 
                                             VARIANT_BOOL* Cancel/*[in]*/);

};
typedef ExplorerEvents_10DispT<ExplorerEvents_10> ExplorerEvents_10Disp;

// *********************************************************************//
// SmartIntf: TCOM_Inspectors
// Interface: _Inspectors
// *********************************************************************//
template <class T /* _Inspectors */ >
class TCOM_InspectorsT : public TComInterface<_Inspectors>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_InspectorsT() {}
  TCOM_InspectorsT(_Inspectors *intf, bool addRef = false) : TComInterface<_Inspectors>(intf, addRef) {}
  TCOM_InspectorsT(const TCOM_InspectorsT& src) : TComInterface<_Inspectors>(src) {}
  TCOM_InspectorsT& operator=(const TCOM_InspectorsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::Inspector** Item/*[out,retval]*/);
  Outlook_xp::Inspector* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(LPDISPATCH Item/*[in]*/, 
                                 Outlook_xp::_Inspector** Inspector/*[out,retval]*/);
  Outlook_xp::_Inspector* __fastcall Add(LPDISPATCH Item/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_InspectorsT<_Inspectors> TCOM_Inspectors;

// *********************************************************************//
// DispIntf:  _Inspectors
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063008-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _InspectorsDispT : public TAutoDriver<_Inspectors>
{
public:
  _InspectorsDispT(){}

  _InspectorsDispT(_Inspectors *pintf)
  {
    TAutoDriver<_Inspectors>::Bind(pintf, false);
  }

  _InspectorsDispT(_InspectorsPtr pintf)
  {
    TAutoDriver<_Inspectors>::Bind(pintf, true);
  }

  _InspectorsDispT& operator=(_Inspectors *pintf)
  {
    TAutoDriver<_Inspectors>::Bind(pintf, false);
    return *this;
  }

  _InspectorsDispT& operator=(_InspectorsPtr pintf)
  {
    TAutoDriver<_Inspectors>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Inspectors));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Inspectors);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::Inspector** Item/*[out,retval]*/);
  Outlook_xp::Inspector* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(LPDISPATCH Item/*[in]*/, 
                                 Outlook_xp::_Inspector** Inspector/*[out,retval]*/);
  Outlook_xp::_Inspector* __fastcall Add(LPDISPATCH Item/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _InspectorsDispT<_Inspectors> _InspectorsDisp;

// *********************************************************************//
// DispIntf:  InspectorEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307D-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class InspectorEventsDispT : public TAutoDriver<InspectorEvents>
{
public:
  InspectorEventsDispT(){}

  InspectorEventsDispT(InspectorEvents *pintf)
  {
    TAutoDriver<InspectorEvents>::Bind(pintf, false);
  }

  InspectorEventsDispT(InspectorEventsPtr pintf)
  {
    TAutoDriver<InspectorEvents>::Bind(pintf, true);
  }

  InspectorEventsDispT& operator=(InspectorEvents *pintf)
  {
    TAutoDriver<InspectorEvents>::Bind(pintf, false);
    return *this;
  }

  InspectorEventsDispT& operator=(InspectorEventsPtr pintf)
  {
    TAutoDriver<InspectorEvents>::Bind(pintf, true);
    return *this;
  }

  void            __fastcall Activate();
  void            __fastcall Deactivate();
  void            __fastcall Close();

};
typedef InspectorEventsDispT<InspectorEvents> InspectorEventsDisp;

// *********************************************************************//
// DispIntf:  InspectorEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class InspectorEvents_10DispT : public TAutoDriver<InspectorEvents_10>
{
public:
  InspectorEvents_10DispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  HRESULT         __fastcall Activate();
  HRESULT         __fastcall Deactivate();
  HRESULT         __fastcall Close();
  HRESULT         __fastcall BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeMove(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeSize(VARIANT_BOOL* Cancel/*[in]*/);

};
typedef InspectorEvents_10DispT<InspectorEvents_10> InspectorEvents_10Disp;

typedef TComInterface<Search>  TCOMSearch;

// *********************************************************************//
// DispIntf:  Search
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300B-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class SearchDispT : public TAutoDriver<Search>
{
public:
  SearchDispT(){}

  SearchDispT(Search *pintf)
  {
    TAutoDriver<Search>::Bind(pintf, false);
  }

  SearchDispT(SearchPtr pintf)
  {
    TAutoDriver<Search>::Bind(pintf, true);
  }

  SearchDispT& operator=(Search *pintf)
  {
    TAutoDriver<Search>::Bind(pintf, false);
    return *this;
  }

  SearchDispT& operator=(SearchPtr pintf)
  {
    TAutoDriver<Search>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Filter(BSTR* Filter/*[out,retval]*/);
  BSTR            __fastcall get_Filter(void);
  HRESULT         __fastcall get_IsSynchronous(VARIANT_BOOL* IsSynchronous/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsSynchronous(void);
  HRESULT         __fastcall get_Results(Outlook_xp::_Results** Results/*[out,retval]*/);
  Outlook_xp::_ResultsPtr __fastcall get_Results(void);
  HRESULT         __fastcall get_SearchSubFolders(VARIANT_BOOL* SearchSubFolders/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_SearchSubFolders(void);
  HRESULT         __fastcall Stop();
  HRESULT         __fastcall get_Tag(BSTR* Tag/*[out,retval]*/);
  BSTR            __fastcall get_Tag(void);
  HRESULT         __fastcall get_Scope(BSTR* Scope/*[out,retval]*/);
  BSTR            __fastcall get_Scope(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Filter = {read = get_Filter};
  __property   VARIANT_BOOL    IsSynchronous = {read = get_IsSynchronous};
  __property   Outlook_xp::_ResultsPtr Results = {read = get_Results};
  __property   VARIANT_BOOL    SearchSubFolders = {read = get_SearchSubFolders};
  __property   BSTR            Tag = {read = get_Tag};
  __property   BSTR            Scope = {read = get_Scope};
};
typedef SearchDispT<Search> SearchDisp;

// *********************************************************************//
// SmartIntf: TCOM_Results
// Interface: _Results
// *********************************************************************//
template <class T /* _Results */ >
class TCOM_ResultsT : public TComInterface<_Results>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ResultsT() {}
  TCOM_ResultsT(_Results *intf, bool addRef = false) : TComInterface<_Results>(intf, addRef) {}
  TCOM_ResultsT(const TCOM_ResultsT& src) : TComInterface<_Results>(src) {}
  TCOM_ResultsT& operator=(const TCOM_ResultsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall GetFirst(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetPrevious(void);
  HRESULT         __fastcall ResetColumns(void);
  HRESULT         __fastcall SetColumns(BSTR Columns/*[in]*/);
  HRESULT         __fastcall Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/);
  Outlook_xp::OlItemType __fastcall get_DefaultItemType(void);
  HRESULT         __fastcall set_DefaultItemType(Outlook_xp::OlItemType DefaultItemType/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   Outlook_xp::OlItemType DefaultItemType = {read = get_DefaultItemType, write = set_DefaultItemType};
};
typedef TCOM_ResultsT<_Results> TCOM_Results;

// *********************************************************************//
// DispIntf:  _Results
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300C-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ResultsDispT : public TAutoDriver<_Results>
{
public:
  _ResultsDispT(){}

  _ResultsDispT(_Results *pintf)
  {
    TAutoDriver<_Results>::Bind(pintf, false);
  }

  _ResultsDispT(_ResultsPtr pintf)
  {
    TAutoDriver<_Results>::Bind(pintf, true);
  }

  _ResultsDispT& operator=(_Results *pintf)
  {
    TAutoDriver<_Results>::Bind(pintf, false);
    return *this;
  }

  _ResultsDispT& operator=(_ResultsPtr pintf)
  {
    TAutoDriver<_Results>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Results));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Results);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_RawTable(void);
  HRESULT         __fastcall GetFirst(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetFirst(void);
  HRESULT         __fastcall GetLast(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetLast(void);
  HRESULT         __fastcall GetNext(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetNext(void);
  HRESULT         __fastcall GetPrevious(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall GetPrevious(void);
  HRESULT         __fastcall ResetColumns();
  HRESULT         __fastcall SetColumns(BSTR Columns/*[in]*/);
  HRESULT         __fastcall Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/);
  Outlook_xp::OlItemType __fastcall get_DefaultItemType(void);
  HRESULT         __fastcall set_DefaultItemType(Outlook_xp::OlItemType DefaultItemType/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
  __property   LPUNKNOWN       RawTable = {read = get_RawTable};
  __property   Outlook_xp::OlItemType DefaultItemType = {read = get_DefaultItemType, write = set_DefaultItemType};
};
typedef _ResultsDispT<_Results> _ResultsDisp;

// *********************************************************************//
// SmartIntf: TCOM_Reminders
// Interface: _Reminders
// *********************************************************************//
template <class T /* _Reminders */ >
class TCOM_RemindersT : public TComInterface<_Reminders>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_RemindersT() {}
  TCOM_RemindersT(_Reminders *intf, bool addRef = false) : TComInterface<_Reminders>(intf, addRef) {}
  TCOM_RemindersT(const TCOM_RemindersT& src) : TComInterface<_Reminders>(src) {}
  TCOM_RemindersT& operator=(const TCOM_RemindersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::_Reminder** Item/*[out,retval]*/);
  Outlook_xp::_Reminder* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);
  HRESULT         __fastcall _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall _NewEnum(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_RemindersT<_Reminders> TCOM_Reminders;

// *********************************************************************//
// DispIntf:  _Reminders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B1-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _RemindersDispT : public TAutoDriver<_Reminders>
{
public:
  _RemindersDispT(){}

  _RemindersDispT(_Reminders *pintf)
  {
    TAutoDriver<_Reminders>::Bind(pintf, false);
  }

  _RemindersDispT(_RemindersPtr pintf)
  {
    TAutoDriver<_Reminders>::Bind(pintf, true);
  }

  _RemindersDispT& operator=(_Reminders *pintf)
  {
    TAutoDriver<_Reminders>::Bind(pintf, false);
    return *this;
  }

  _RemindersDispT& operator=(_RemindersPtr pintf)
  {
    TAutoDriver<_Reminders>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Reminders));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Reminders);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::_Reminder** Item/*[out,retval]*/);
  Outlook_xp::_Reminder* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);
  HRESULT         __fastcall _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall _NewEnum(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _RemindersDispT<_Reminders> _RemindersDisp;

// *********************************************************************//
// SmartIntf: TCOM_Reminder
// Interface: _Reminder
// *********************************************************************//
template <class T /* _Reminder */ >
class TCOM_ReminderT : public TComInterface<_Reminder>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ReminderT() {}
  TCOM_ReminderT(_Reminder *intf, bool addRef = false) : TComInterface<_Reminder>(intf, addRef) {}
  TCOM_ReminderT(const TCOM_ReminderT& src) : TComInterface<_Reminder>(src) {}
  TCOM_ReminderT& operator=(const TCOM_ReminderT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall Dismiss(void);
  HRESULT         __fastcall Snooze(VARIANT SnoozeTime/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_IsVisible(VARIANT_BOOL* IsVisible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsVisible(void);
  HRESULT         __fastcall get_Item(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Item(void);
  HRESULT         __fastcall get_NextReminderDate(DATE* NextReminderDate/*[out,retval]*/);
  DATE            __fastcall get_NextReminderDate(void);
  HRESULT         __fastcall get_OriginalReminderDate(DATE* OriginalReminderDate/*[out,retval]*/);
  DATE            __fastcall get_OriginalReminderDate(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Caption = {read = get_Caption};
  __property   VARIANT_BOOL    IsVisible = {read = get_IsVisible};
  __property   LPDISPATCH      Item = {read = get_Item};
  __property   DATE            NextReminderDate = {read = get_NextReminderDate};
  __property   DATE            OriginalReminderDate = {read = get_OriginalReminderDate};
};
typedef TCOM_ReminderT<_Reminder> TCOM_Reminder;

// *********************************************************************//
// DispIntf:  _Reminder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B0-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ReminderDispT : public TAutoDriver<_Reminder>
{
public:
  _ReminderDispT(){}

  _ReminderDispT(_Reminder *pintf)
  {
    TAutoDriver<_Reminder>::Bind(pintf, false);
  }

  _ReminderDispT(_ReminderPtr pintf)
  {
    TAutoDriver<_Reminder>::Bind(pintf, true);
  }

  _ReminderDispT& operator=(_Reminder *pintf)
  {
    TAutoDriver<_Reminder>::Bind(pintf, false);
    return *this;
  }

  _ReminderDispT& operator=(_ReminderPtr pintf)
  {
    TAutoDriver<_Reminder>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Reminder));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Reminder);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall Dismiss();
  HRESULT         __fastcall Snooze(VARIANT SnoozeTime/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Caption(BSTR* Caption/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_IsVisible(VARIANT_BOOL* IsVisible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsVisible(void);
  HRESULT         __fastcall get_Item(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Item(void);
  HRESULT         __fastcall get_NextReminderDate(DATE* NextReminderDate/*[out,retval]*/);
  DATE            __fastcall get_NextReminderDate(void);
  HRESULT         __fastcall get_OriginalReminderDate(DATE* OriginalReminderDate/*[out,retval]*/);
  DATE            __fastcall get_OriginalReminderDate(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Caption = {read = get_Caption};
  __property   VARIANT_BOOL    IsVisible = {read = get_IsVisible};
  __property   LPDISPATCH      Item = {read = get_Item};
  __property   DATE            NextReminderDate = {read = get_NextReminderDate};
  __property   DATE            OriginalReminderDate = {read = get_OriginalReminderDate};
};
typedef _ReminderDispT<_Reminder> _ReminderDisp;

typedef TComInterface<Actions>  TCOMActions;

// *********************************************************************//
// DispIntf:  Actions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303E-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ActionsDispT : public TAutoDriver<Actions>
{
public:
  ActionsDispT(){}

  ActionsDispT(Actions *pintf)
  {
    TAutoDriver<Actions>::Bind(pintf, false);
  }

  ActionsDispT(ActionsPtr pintf)
  {
    TAutoDriver<Actions>::Bind(pintf, true);
  }

  ActionsDispT& operator=(Actions *pintf)
  {
    TAutoDriver<Actions>::Bind(pintf, false);
    return *this;
  }

  ActionsDispT& operator=(ActionsPtr pintf)
  {
    TAutoDriver<Actions>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::Action** Item/*[out,retval]*/);
  Outlook_xp::Action* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(Outlook_xp::Action** Action/*[out,retval]*/);
  Outlook_xp::Action* __fastcall Add(void);
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef ActionsDispT<Actions> ActionsDisp;

// *********************************************************************//
// DispIntf:  ApplicationEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304E-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ApplicationEventsDispT : public TAutoDriver<ApplicationEvents>
{
public:
  ApplicationEventsDispT(){}

  ApplicationEventsDispT(ApplicationEvents *pintf)
  {
    TAutoDriver<ApplicationEvents>::Bind(pintf, false);
  }

  ApplicationEventsDispT(ApplicationEventsPtr pintf)
  {
    TAutoDriver<ApplicationEvents>::Bind(pintf, true);
  }

  ApplicationEventsDispT& operator=(ApplicationEvents *pintf)
  {
    TAutoDriver<ApplicationEvents>::Bind(pintf, false);
    return *this;
  }

  ApplicationEventsDispT& operator=(ApplicationEventsPtr pintf)
  {
    TAutoDriver<ApplicationEvents>::Bind(pintf, true);
    return *this;
  }

  void            __fastcall ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall NewMail();
  void            __fastcall Reminder(LPDISPATCH Item/*[in]*/);
  void            __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/);
  void            __fastcall Startup();
  void            __fastcall Quit();

};
typedef ApplicationEventsDispT<ApplicationEvents> ApplicationEventsDisp;

typedef TComInterface<PropertyPages>  TCOMPropertyPages;

// *********************************************************************//
// DispIntf:  PropertyPages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063080-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class PropertyPagesDispT : public TAutoDriver<PropertyPages>
{
public:
  PropertyPagesDispT(){}

  PropertyPagesDispT(PropertyPages *pintf)
  {
    TAutoDriver<PropertyPages>::Bind(pintf, false);
  }

  PropertyPagesDispT(PropertyPagesPtr pintf)
  {
    TAutoDriver<PropertyPages>::Bind(pintf, true);
  }

  PropertyPagesDispT& operator=(PropertyPages *pintf)
  {
    TAutoDriver<PropertyPages>::Bind(pintf, false);
    return *this;
  }

  PropertyPagesDispT& operator=(PropertyPagesPtr pintf)
  {
    TAutoDriver<PropertyPages>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Page/*[in]*/, BSTR Title/*[in,opt]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef PropertyPagesDispT<PropertyPages> PropertyPagesDisp;

// *********************************************************************//
// SmartIntf: TCOM_AppointmentItem
// Interface: _AppointmentItem
// *********************************************************************//
template <class T /* _AppointmentItem */ >
class TCOM_AppointmentItemT : public TComInterface<_AppointmentItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_AppointmentItemT() {}
  TCOM_AppointmentItemT(_AppointmentItem *intf, bool addRef = false) : TComInterface<_AppointmentItem>(intf, addRef) {}
  TCOM_AppointmentItemT(const TCOM_AppointmentItemT& src) : TComInterface<_AppointmentItem>(src) {}
  TCOM_AppointmentItemT& operator=(const TCOM_AppointmentItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AllDayEvent(VARIANT_BOOL* AllDayEvent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AllDayEvent(void);
  HRESULT         __fastcall set_AllDayEvent(VARIANT_BOOL AllDayEvent/*[in]*/);
  HRESULT         __fastcall get_BusyStatus(Outlook_xp::OlBusyStatus* BusyStatus/*[out,retval]*/);
  Outlook_xp::OlBusyStatus __fastcall get_BusyStatus(void);
  HRESULT         __fastcall set_BusyStatus(Outlook_xp::OlBusyStatus BusyStatus/*[in]*/);
  HRESULT         __fastcall get_Duration(long* Duration/*[out,retval]*/);
  long            __fastcall get_Duration(void);
  HRESULT         __fastcall set_Duration(long Duration/*[in]*/);
  HRESULT         __fastcall get_End(DATE* End/*[out,retval]*/);
  DATE            __fastcall get_End(void);
  HRESULT         __fastcall set_End(DATE End/*[in]*/);
  HRESULT         __fastcall get_IsOnlineMeeting(VARIANT_BOOL* IsOnlineMeeting/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsOnlineMeeting(void);
  HRESULT         __fastcall set_IsOnlineMeeting(VARIANT_BOOL IsOnlineMeeting/*[in]*/);
  HRESULT         __fastcall get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsRecurring(void);
  HRESULT         __fastcall get_Location(BSTR* Location/*[out,retval]*/);
  BSTR            __fastcall get_Location(void);
  HRESULT         __fastcall set_Location(BSTR Location/*[in]*/);
  HRESULT         __fastcall get_MeetingStatus(Outlook_xp::OlMeetingStatus* MeetingStatus/*[out,retval]*/);
  Outlook_xp::OlMeetingStatus __fastcall get_MeetingStatus(void);
  HRESULT         __fastcall set_MeetingStatus(Outlook_xp::OlMeetingStatus MeetingStatus/*[in]*/);
  HRESULT         __fastcall get_NetMeetingAutoStart(VARIANT_BOOL* NetMeetingAutoStart/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NetMeetingAutoStart(void);
  HRESULT         __fastcall set_NetMeetingAutoStart(VARIANT_BOOL NetMeetingAutoStart/*[in]*/);
  HRESULT         __fastcall get_NetMeetingOrganizerAlias(BSTR* NetMeetingOrganizerAlias/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingOrganizerAlias(void);
  HRESULT         __fastcall set_NetMeetingOrganizerAlias(BSTR NetMeetingOrganizerAlias/*[in]*/);
  HRESULT         __fastcall get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingServer(void);
  HRESULT         __fastcall set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/);
  HRESULT         __fastcall get_NetMeetingType(Outlook_xp::OlNetMeetingType* NetMeetingType/*[out,retval]*/);
  Outlook_xp::OlNetMeetingType __fastcall get_NetMeetingType(void);
  HRESULT         __fastcall set_NetMeetingType(Outlook_xp::OlNetMeetingType NetMeetingType/*[in]*/);
  HRESULT         __fastcall get_OptionalAttendees(BSTR* OptionalAttendees/*[out,retval]*/);
  BSTR            __fastcall get_OptionalAttendees(void);
  HRESULT         __fastcall set_OptionalAttendees(BSTR OptionalAttendees/*[in]*/);
  HRESULT         __fastcall get_Organizer(BSTR* Organizer/*[out,retval]*/);
  BSTR            __fastcall get_Organizer(void);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_RecurrenceState(Outlook_xp::OlRecurrenceState* RecurrenceState/*[out,retval]*/);
  Outlook_xp::OlRecurrenceState __fastcall get_RecurrenceState(void);
  HRESULT         __fastcall get_ReminderMinutesBeforeStart(long* ReminderMinutesBeforeStart/*[out,retval]*/);
  long            __fastcall get_ReminderMinutesBeforeStart(void);
  HRESULT         __fastcall set_ReminderMinutesBeforeStart(long ReminderMinutesBeforeStart/*[in]*/);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ReplyTime(DATE* ReplyTime/*[out,retval]*/);
  DATE            __fastcall get_ReplyTime(void);
  HRESULT         __fastcall set_ReplyTime(DATE ReplyTime/*[in]*/);
  HRESULT         __fastcall get_RequiredAttendees(BSTR* RequiredAttendees/*[out,retval]*/);
  BSTR            __fastcall get_RequiredAttendees(void);
  HRESULT         __fastcall set_RequiredAttendees(BSTR RequiredAttendees/*[in]*/);
  HRESULT         __fastcall get_Resources(BSTR* Resources/*[out,retval]*/);
  BSTR            __fastcall get_Resources(void);
  HRESULT         __fastcall set_Resources(BSTR Resources/*[in]*/);
  HRESULT         __fastcall get_ResponseRequested(VARIANT_BOOL* ResponseRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ResponseRequested(void);
  HRESULT         __fastcall set_ResponseRequested(VARIANT_BOOL ResponseRequested/*[in]*/);
  HRESULT         __fastcall get_ResponseStatus(Outlook_xp::OlResponseStatus* ResponseStatus/*[out,retval]*/);
  Outlook_xp::OlResponseStatus __fastcall get_ResponseStatus(void);
  HRESULT         __fastcall get_Start(DATE* Start/*[out,retval]*/);
  DATE            __fastcall get_Start(void);
  HRESULT         __fastcall set_Start(DATE Start/*[in]*/);
  HRESULT         __fastcall ClearRecurrencePattern(void);
  HRESULT         __fastcall ForwardAsVcal(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ForwardAsVcal(void);
  HRESULT         __fastcall GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/);
  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void);
  HRESULT         __fastcall Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                     VARIANT fNoUI/*[in,opt]*/, 
                                     VARIANT fAdditionalTextDialog/*[in,opt]*/, 
                                     Outlook_xp::MeetingItem** ResponseItem/*[out,retval]*/);
  Outlook_xp::MeetingItem* __fastcall Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                              VARIANT fNoUI/*[in,opt]*/= TNoParam(), 
                                              VARIANT fAdditionalTextDialog/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Send(void);
  HRESULT         __fastcall get_NetMeetingDocPathName(BSTR* NetMeetingDocPathName/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingDocPathName(void);
  HRESULT         __fastcall set_NetMeetingDocPathName(BSTR NetMeetingDocPathName/*[in]*/);
  HRESULT         __fastcall get_NetShowURL(BSTR* NetShowURL/*[out,retval]*/);
  BSTR            __fastcall get_NetShowURL(void);
  HRESULT         __fastcall set_NetShowURL(BSTR NetShowURL/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ConferenceServerAllowExternal(VARIANT_BOOL* ConferenceServerAllowExternal/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ConferenceServerAllowExternal(void);
  HRESULT         __fastcall set_ConferenceServerAllowExternal(VARIANT_BOOL ConferenceServerAllowExternal/*[in]*/);
  HRESULT         __fastcall get_ConferenceServerPassword(BSTR* ConferenceServerPassword/*[out,retval]*/);
  BSTR            __fastcall get_ConferenceServerPassword(void);
  HRESULT         __fastcall set_ConferenceServerPassword(BSTR ConferenceServerPassword/*[in]*/);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AllDayEvent = {read = get_AllDayEvent, write = set_AllDayEvent};
  __property   Outlook_xp::OlBusyStatus BusyStatus = {read = get_BusyStatus, write = set_BusyStatus};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   VARIANT_BOOL    IsOnlineMeeting = {read = get_IsOnlineMeeting, write = set_IsOnlineMeeting};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   BSTR            Location = {read = get_Location, write = set_Location};
  __property   Outlook_xp::OlMeetingStatus MeetingStatus = {read = get_MeetingStatus, write = set_MeetingStatus};
  __property   VARIANT_BOOL    NetMeetingAutoStart = {read = get_NetMeetingAutoStart, write = set_NetMeetingAutoStart};
  __property   BSTR            NetMeetingOrganizerAlias = {read = get_NetMeetingOrganizerAlias, write = set_NetMeetingOrganizerAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   Outlook_xp::OlNetMeetingType NetMeetingType = {read = get_NetMeetingType, write = set_NetMeetingType};
  __property   BSTR            OptionalAttendees = {read = get_OptionalAttendees, write = set_OptionalAttendees};
  __property   BSTR            Organizer = {read = get_Organizer};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   Outlook_xp::OlRecurrenceState RecurrenceState = {read = get_RecurrenceState};
  __property   long            ReminderMinutesBeforeStart = {read = get_ReminderMinutesBeforeStart, write = set_ReminderMinutesBeforeStart};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReplyTime = {read = get_ReplyTime, write = set_ReplyTime};
  __property   BSTR            RequiredAttendees = {read = get_RequiredAttendees, write = set_RequiredAttendees};
  __property   BSTR            Resources = {read = get_Resources, write = set_Resources};
  __property   VARIANT_BOOL    ResponseRequested = {read = get_ResponseRequested, write = set_ResponseRequested};
  __property   Outlook_xp::OlResponseStatus ResponseStatus = {read = get_ResponseStatus};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   BSTR            NetMeetingDocPathName = {read = get_NetMeetingDocPathName, write = set_NetMeetingDocPathName};
  __property   BSTR            NetShowURL = {read = get_NetShowURL, write = set_NetShowURL};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   VARIANT_BOOL    ConferenceServerAllowExternal = {read = get_ConferenceServerAllowExternal, write = set_ConferenceServerAllowExternal};
  __property   BSTR            ConferenceServerPassword = {read = get_ConferenceServerPassword, write = set_ConferenceServerPassword};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_AppointmentItemT<_AppointmentItem> TCOM_AppointmentItem;

// *********************************************************************//
// DispIntf:  _AppointmentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063033-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _AppointmentItemDispT : public TAutoDriver<_AppointmentItem>
{
public:
  _AppointmentItemDispT(){}

  _AppointmentItemDispT(_AppointmentItem *pintf)
  {
    TAutoDriver<_AppointmentItem>::Bind(pintf, false);
  }

  _AppointmentItemDispT(_AppointmentItemPtr pintf)
  {
    TAutoDriver<_AppointmentItem>::Bind(pintf, true);
  }

  _AppointmentItemDispT& operator=(_AppointmentItem *pintf)
  {
    TAutoDriver<_AppointmentItem>::Bind(pintf, false);
    return *this;
  }

  _AppointmentItemDispT& operator=(_AppointmentItemPtr pintf)
  {
    TAutoDriver<_AppointmentItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AppointmentItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AppointmentItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AllDayEvent(VARIANT_BOOL* AllDayEvent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AllDayEvent(void);
  HRESULT         __fastcall set_AllDayEvent(VARIANT_BOOL AllDayEvent/*[in]*/);
  HRESULT         __fastcall get_BusyStatus(Outlook_xp::OlBusyStatus* BusyStatus/*[out,retval]*/);
  Outlook_xp::OlBusyStatus __fastcall get_BusyStatus(void);
  HRESULT         __fastcall set_BusyStatus(Outlook_xp::OlBusyStatus BusyStatus/*[in]*/);
  HRESULT         __fastcall get_Duration(long* Duration/*[out,retval]*/);
  long            __fastcall get_Duration(void);
  HRESULT         __fastcall set_Duration(long Duration/*[in]*/);
  HRESULT         __fastcall get_End(DATE* End/*[out,retval]*/);
  DATE            __fastcall get_End(void);
  HRESULT         __fastcall set_End(DATE End/*[in]*/);
  HRESULT         __fastcall get_IsOnlineMeeting(VARIANT_BOOL* IsOnlineMeeting/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsOnlineMeeting(void);
  HRESULT         __fastcall set_IsOnlineMeeting(VARIANT_BOOL IsOnlineMeeting/*[in]*/);
  HRESULT         __fastcall get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsRecurring(void);
  HRESULT         __fastcall get_Location(BSTR* Location/*[out,retval]*/);
  BSTR            __fastcall get_Location(void);
  HRESULT         __fastcall set_Location(BSTR Location/*[in]*/);
  HRESULT         __fastcall get_MeetingStatus(Outlook_xp::OlMeetingStatus* MeetingStatus/*[out,retval]*/);
  Outlook_xp::OlMeetingStatus __fastcall get_MeetingStatus(void);
  HRESULT         __fastcall set_MeetingStatus(Outlook_xp::OlMeetingStatus MeetingStatus/*[in]*/);
  HRESULT         __fastcall get_NetMeetingAutoStart(VARIANT_BOOL* NetMeetingAutoStart/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NetMeetingAutoStart(void);
  HRESULT         __fastcall set_NetMeetingAutoStart(VARIANT_BOOL NetMeetingAutoStart/*[in]*/);
  HRESULT         __fastcall get_NetMeetingOrganizerAlias(BSTR* NetMeetingOrganizerAlias/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingOrganizerAlias(void);
  HRESULT         __fastcall set_NetMeetingOrganizerAlias(BSTR NetMeetingOrganizerAlias/*[in]*/);
  HRESULT         __fastcall get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingServer(void);
  HRESULT         __fastcall set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/);
  HRESULT         __fastcall get_NetMeetingType(Outlook_xp::OlNetMeetingType* NetMeetingType/*[out,retval]*/);
  Outlook_xp::OlNetMeetingType __fastcall get_NetMeetingType(void);
  HRESULT         __fastcall set_NetMeetingType(Outlook_xp::OlNetMeetingType NetMeetingType/*[in]*/);
  HRESULT         __fastcall get_OptionalAttendees(BSTR* OptionalAttendees/*[out,retval]*/);
  BSTR            __fastcall get_OptionalAttendees(void);
  HRESULT         __fastcall set_OptionalAttendees(BSTR OptionalAttendees/*[in]*/);
  HRESULT         __fastcall get_Organizer(BSTR* Organizer/*[out,retval]*/);
  BSTR            __fastcall get_Organizer(void);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_RecurrenceState(Outlook_xp::OlRecurrenceState* RecurrenceState/*[out,retval]*/);
  Outlook_xp::OlRecurrenceState __fastcall get_RecurrenceState(void);
  HRESULT         __fastcall get_ReminderMinutesBeforeStart(long* ReminderMinutesBeforeStart/*[out,retval]*/);
  long            __fastcall get_ReminderMinutesBeforeStart(void);
  HRESULT         __fastcall set_ReminderMinutesBeforeStart(long ReminderMinutesBeforeStart/*[in]*/);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ReplyTime(DATE* ReplyTime/*[out,retval]*/);
  DATE            __fastcall get_ReplyTime(void);
  HRESULT         __fastcall set_ReplyTime(DATE ReplyTime/*[in]*/);
  HRESULT         __fastcall get_RequiredAttendees(BSTR* RequiredAttendees/*[out,retval]*/);
  BSTR            __fastcall get_RequiredAttendees(void);
  HRESULT         __fastcall set_RequiredAttendees(BSTR RequiredAttendees/*[in]*/);
  HRESULT         __fastcall get_Resources(BSTR* Resources/*[out,retval]*/);
  BSTR            __fastcall get_Resources(void);
  HRESULT         __fastcall set_Resources(BSTR Resources/*[in]*/);
  HRESULT         __fastcall get_ResponseRequested(VARIANT_BOOL* ResponseRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ResponseRequested(void);
  HRESULT         __fastcall set_ResponseRequested(VARIANT_BOOL ResponseRequested/*[in]*/);
  HRESULT         __fastcall get_ResponseStatus(Outlook_xp::OlResponseStatus* ResponseStatus/*[out,retval]*/);
  Outlook_xp::OlResponseStatus __fastcall get_ResponseStatus(void);
  HRESULT         __fastcall get_Start(DATE* Start/*[out,retval]*/);
  DATE            __fastcall get_Start(void);
  HRESULT         __fastcall set_Start(DATE Start/*[in]*/);
  HRESULT         __fastcall ClearRecurrencePattern();
  HRESULT         __fastcall ForwardAsVcal(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ForwardAsVcal(void);
  HRESULT         __fastcall GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/);
  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void);
  HRESULT         __fastcall Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                     VARIANT fNoUI/*[in,opt]*/, 
                                     VARIANT fAdditionalTextDialog/*[in,opt]*/, 
                                     Outlook_xp::MeetingItem** ResponseItem/*[out,retval]*/);
  Outlook_xp::MeetingItem* __fastcall Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                              VARIANT fNoUI/*[in,opt]*/= TNoParam(), 
                                              VARIANT fAdditionalTextDialog/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Send();
  HRESULT         __fastcall get_NetMeetingDocPathName(BSTR* NetMeetingDocPathName/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingDocPathName(void);
  HRESULT         __fastcall set_NetMeetingDocPathName(BSTR NetMeetingDocPathName/*[in]*/);
  HRESULT         __fastcall get_NetShowURL(BSTR* NetShowURL/*[out,retval]*/);
  BSTR            __fastcall get_NetShowURL(void);
  HRESULT         __fastcall set_NetShowURL(BSTR NetShowURL/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ConferenceServerAllowExternal(VARIANT_BOOL* ConferenceServerAllowExternal/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ConferenceServerAllowExternal(void);
  HRESULT         __fastcall set_ConferenceServerAllowExternal(VARIANT_BOOL ConferenceServerAllowExternal/*[in]*/);
  HRESULT         __fastcall get_ConferenceServerPassword(BSTR* ConferenceServerPassword/*[out,retval]*/);
  BSTR            __fastcall get_ConferenceServerPassword(void);
  HRESULT         __fastcall set_ConferenceServerPassword(BSTR ConferenceServerPassword/*[in]*/);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AllDayEvent = {read = get_AllDayEvent, write = set_AllDayEvent};
  __property   Outlook_xp::OlBusyStatus BusyStatus = {read = get_BusyStatus, write = set_BusyStatus};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   VARIANT_BOOL    IsOnlineMeeting = {read = get_IsOnlineMeeting, write = set_IsOnlineMeeting};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   BSTR            Location = {read = get_Location, write = set_Location};
  __property   Outlook_xp::OlMeetingStatus MeetingStatus = {read = get_MeetingStatus, write = set_MeetingStatus};
  __property   VARIANT_BOOL    NetMeetingAutoStart = {read = get_NetMeetingAutoStart, write = set_NetMeetingAutoStart};
  __property   BSTR            NetMeetingOrganizerAlias = {read = get_NetMeetingOrganizerAlias, write = set_NetMeetingOrganizerAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   Outlook_xp::OlNetMeetingType NetMeetingType = {read = get_NetMeetingType, write = set_NetMeetingType};
  __property   BSTR            OptionalAttendees = {read = get_OptionalAttendees, write = set_OptionalAttendees};
  __property   BSTR            Organizer = {read = get_Organizer};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   Outlook_xp::OlRecurrenceState RecurrenceState = {read = get_RecurrenceState};
  __property   long            ReminderMinutesBeforeStart = {read = get_ReminderMinutesBeforeStart, write = set_ReminderMinutesBeforeStart};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReplyTime = {read = get_ReplyTime, write = set_ReplyTime};
  __property   BSTR            RequiredAttendees = {read = get_RequiredAttendees, write = set_RequiredAttendees};
  __property   BSTR            Resources = {read = get_Resources, write = set_Resources};
  __property   VARIANT_BOOL    ResponseRequested = {read = get_ResponseRequested, write = set_ResponseRequested};
  __property   Outlook_xp::OlResponseStatus ResponseStatus = {read = get_ResponseStatus};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   BSTR            NetMeetingDocPathName = {read = get_NetMeetingDocPathName, write = set_NetMeetingDocPathName};
  __property   BSTR            NetShowURL = {read = get_NetShowURL, write = set_NetShowURL};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   VARIANT_BOOL    ConferenceServerAllowExternal = {read = get_ConferenceServerAllowExternal, write = set_ConferenceServerAllowExternal};
  __property   BSTR            ConferenceServerPassword = {read = get_ConferenceServerPassword, write = set_ConferenceServerPassword};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _AppointmentItemDispT<_AppointmentItem> _AppointmentItemDisp;

typedef TComInterface<Attachments>  TCOMAttachments;

// *********************************************************************//
// DispIntf:  Attachments
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303C-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AttachmentsDispT : public TAutoDriver<Attachments>
{
public:
  AttachmentsDispT(){}

  AttachmentsDispT(Attachments *pintf)
  {
    TAutoDriver<Attachments>::Bind(pintf, false);
  }

  AttachmentsDispT(AttachmentsPtr pintf)
  {
    TAutoDriver<Attachments>::Bind(pintf, true);
  }

  AttachmentsDispT& operator=(Attachments *pintf)
  {
    TAutoDriver<Attachments>::Bind(pintf, false);
    return *this;
  }

  AttachmentsDispT& operator=(AttachmentsPtr pintf)
  {
    TAutoDriver<Attachments>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::Attachment** Item/*[out,retval]*/);
  Outlook_xp::Attachment* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Source/*[in]*/, VARIANT Type/*[in,opt]*/, 
                                 VARIANT Position/*[in,opt]*/, VARIANT DisplayName/*[in,opt]*/, 
                                 Outlook_xp::Attachment** Attachment/*[out,retval]*/);
  Outlook_xp::Attachment* __fastcall Add(VARIANT Source/*[in]*/, 
                                         VARIANT Type/*[in,opt]*/= TNoParam(), 
                                         VARIANT Position/*[in,opt]*/= TNoParam(), 
                                         VARIANT DisplayName/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef AttachmentsDispT<Attachments> AttachmentsDisp;

typedef TComInterface<Attachment>  TCOMAttachment;

// *********************************************************************//
// DispIntf:  Attachment
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063007-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class AttachmentDispT : public TAutoDriver<Attachment>
{
public:
  AttachmentDispT(){}

  AttachmentDispT(Attachment *pintf)
  {
    TAutoDriver<Attachment>::Bind(pintf, false);
  }

  AttachmentDispT(AttachmentPtr pintf)
  {
    TAutoDriver<Attachment>::Bind(pintf, true);
  }

  AttachmentDispT& operator=(Attachment *pintf)
  {
    TAutoDriver<Attachment>::Bind(pintf, false);
    return *this;
  }

  AttachmentDispT& operator=(AttachmentPtr pintf)
  {
    TAutoDriver<Attachment>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_DisplayName(BSTR* DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_DisplayName(void);
  HRESULT         __fastcall set_DisplayName(BSTR DisplayName/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* FileName/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_Index(long* Index/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_PathName(BSTR* PathName/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Position(long* Position/*[out,retval]*/);
  long            __fastcall get_Position(void);
  HRESULT         __fastcall set_Position(long Position/*[in]*/);
  HRESULT         __fastcall get_Type(Outlook_xp::OlAttachmentType* Type/*[out,retval]*/);
  Outlook_xp::OlAttachmentType __fastcall get_Type(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall SaveAsFile(BSTR Path/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            DisplayName = {read = get_DisplayName, write = set_DisplayName};
  __property   BSTR            FileName = {read = get_FileName};
  __property   long            Index = {read = get_Index};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            PathName = {read = get_PathName};
  __property   long            Position = {read = get_Position, write = set_Position};
  __property   Outlook_xp::OlAttachmentType Type = {read = get_Type};
};
typedef AttachmentDispT<Attachment> AttachmentDisp;

typedef TComInterface<FormDescription>  TCOMFormDescription;

// *********************************************************************//
// DispIntf:  FormDescription
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063046-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class FormDescriptionDispT : public TAutoDriver<FormDescription>
{
public:
  FormDescriptionDispT(){}

  FormDescriptionDispT(FormDescription *pintf)
  {
    TAutoDriver<FormDescription>::Bind(pintf, false);
  }

  FormDescriptionDispT(FormDescriptionPtr pintf)
  {
    TAutoDriver<FormDescription>::Bind(pintf, true);
  }

  FormDescriptionDispT& operator=(FormDescription *pintf)
  {
    TAutoDriver<FormDescription>::Bind(pintf, false);
    return *this;
  }

  FormDescriptionDispT& operator=(FormDescriptionPtr pintf)
  {
    TAutoDriver<FormDescription>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Category(BSTR* Category/*[out,retval]*/);
  BSTR            __fastcall get_Category(void);
  HRESULT         __fastcall set_Category(BSTR Category/*[in]*/);
  HRESULT         __fastcall get_CategorySub(BSTR* CategorySub/*[out,retval]*/);
  BSTR            __fastcall get_CategorySub(void);
  HRESULT         __fastcall set_CategorySub(BSTR CategorySub/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* Comment/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR Comment/*[in]*/);
  HRESULT         __fastcall get_ContactName(BSTR* ContactName/*[out,retval]*/);
  BSTR            __fastcall get_ContactName(void);
  HRESULT         __fastcall set_ContactName(BSTR ContactName/*[in]*/);
  HRESULT         __fastcall get_DisplayName(BSTR* DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_DisplayName(void);
  HRESULT         __fastcall set_DisplayName(BSTR DisplayName/*[in]*/);
  HRESULT         __fastcall get_Hidden(VARIANT_BOOL* Hidden/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Hidden(void);
  HRESULT         __fastcall set_Hidden(VARIANT_BOOL Hidden/*[in]*/);
  HRESULT         __fastcall get_Icon(BSTR* Icon/*[out,retval]*/);
  BSTR            __fastcall get_Icon(void);
  HRESULT         __fastcall set_Icon(BSTR Icon/*[in]*/);
  HRESULT         __fastcall get_Locked(VARIANT_BOOL* Locked/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Locked(void);
  HRESULT         __fastcall set_Locked(VARIANT_BOOL Locked/*[in]*/);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall get_MiniIcon(BSTR* MiniIcon/*[out,retval]*/);
  BSTR            __fastcall get_MiniIcon(void);
  HRESULT         __fastcall set_MiniIcon(BSTR MiniIcon/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_Number(BSTR* Number/*[out,retval]*/);
  BSTR            __fastcall get_Number(void);
  HRESULT         __fastcall set_Number(BSTR Number/*[in]*/);
  HRESULT         __fastcall get_OneOff(VARIANT_BOOL* OneOff/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_OneOff(void);
  HRESULT         __fastcall set_OneOff(VARIANT_BOOL OneOff/*[in]*/);
  HRESULT         __fastcall get_Password(BSTR* Password/*[out,retval]*/);
  BSTR            __fastcall get_Password(void);
  HRESULT         __fastcall set_Password(BSTR Password/*[in]*/);
  HRESULT         __fastcall get_ScriptText(BSTR* ScriptText/*[out,retval]*/);
  BSTR            __fastcall get_ScriptText(void);
  HRESULT         __fastcall get_Template(BSTR* Template/*[out,retval]*/);
  BSTR            __fastcall get_Template(void);
  HRESULT         __fastcall set_Template(BSTR Template/*[in]*/);
  HRESULT         __fastcall get_UseWordMail(VARIANT_BOOL* UseWordMail/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UseWordMail(void);
  HRESULT         __fastcall set_UseWordMail(VARIANT_BOOL UseWordMail/*[in]*/);
  HRESULT         __fastcall get_Version(BSTR* Version/*[out,retval]*/);
  BSTR            __fastcall get_Version(void);
  HRESULT         __fastcall set_Version(BSTR Version/*[in]*/);
  HRESULT         __fastcall PublishForm(Outlook_xp::OlFormRegistry Registry/*[in]*/, 
                                         VARIANT Folder/*[in,opt]*/= TNoParam());

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Category = {read = get_Category, write = set_Category};
  __property   BSTR            CategorySub = {read = get_CategorySub, write = set_CategorySub};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            ContactName = {read = get_ContactName, write = set_ContactName};
  __property   BSTR            DisplayName = {read = get_DisplayName, write = set_DisplayName};
  __property   VARIANT_BOOL    Hidden = {read = get_Hidden, write = set_Hidden};
  __property   BSTR            Icon = {read = get_Icon, write = set_Icon};
  __property   VARIANT_BOOL    Locked = {read = get_Locked, write = set_Locked};
  __property   BSTR            MessageClass = {read = get_MessageClass};
  __property   BSTR            MiniIcon = {read = get_MiniIcon, write = set_MiniIcon};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            Number = {read = get_Number, write = set_Number};
  __property   VARIANT_BOOL    OneOff = {read = get_OneOff, write = set_OneOff};
  __property   BSTR            Password = {read = get_Password, write = set_Password};
  __property   BSTR            ScriptText = {read = get_ScriptText};
  __property   BSTR            Template = {read = get_Template, write = set_Template};
  __property   VARIANT_BOOL    UseWordMail = {read = get_UseWordMail, write = set_UseWordMail};
  __property   BSTR            Version = {read = get_Version, write = set_Version};
};
typedef FormDescriptionDispT<FormDescription> FormDescriptionDisp;

typedef TComInterface<UserProperties>  TCOMUserProperties;

// *********************************************************************//
// DispIntf:  UserProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303D-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class UserPropertiesDispT : public TAutoDriver<UserProperties>
{
public:
  UserPropertiesDispT(){}

  UserPropertiesDispT(UserProperties *pintf)
  {
    TAutoDriver<UserProperties>::Bind(pintf, false);
  }

  UserPropertiesDispT(UserPropertiesPtr pintf)
  {
    TAutoDriver<UserProperties>::Bind(pintf, true);
  }

  UserPropertiesDispT& operator=(UserProperties *pintf)
  {
    TAutoDriver<UserProperties>::Bind(pintf, false);
    return *this;
  }

  UserPropertiesDispT& operator=(UserPropertiesPtr pintf)
  {
    TAutoDriver<UserProperties>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::UserProperty** Item/*[out,retval]*/);
  Outlook_xp::UserProperty* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                 VARIANT AddToFolderFields/*[in,opt]*/, 
                                 VARIANT DisplayFormat/*[in,opt]*/, 
                                 Outlook_xp::UserProperty** UserProperty/*[out,retval]*/);
  Outlook_xp::UserProperty* __fastcall Add(BSTR Name/*[in]*/, 
                                           Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                           VARIANT AddToFolderFields/*[in,opt]*/= TNoParam(), 
                                           VARIANT DisplayFormat/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Find(BSTR Name/*[in]*/, VARIANT Custom/*[in,opt]*/, 
                                  Outlook_xp::UserProperty** UserProperty/*[out,retval]*/);
  Outlook_xp::UserProperty* __fastcall Find(BSTR Name/*[in]*/, 
                                            VARIANT Custom/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef UserPropertiesDispT<UserProperties> UserPropertiesDisp;

typedef TComInterface<UserProperty>  TCOMUserProperty;

// *********************************************************************//
// DispIntf:  UserProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063042-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class UserPropertyDispT : public TAutoDriver<UserProperty>
{
public:
  UserPropertyDispT(){}

  UserPropertyDispT(UserProperty *pintf)
  {
    TAutoDriver<UserProperty>::Bind(pintf, false);
  }

  UserPropertyDispT(UserPropertyPtr pintf)
  {
    TAutoDriver<UserProperty>::Bind(pintf, true);
  }

  UserPropertyDispT& operator=(UserProperty *pintf)
  {
    TAutoDriver<UserProperty>::Bind(pintf, false);
    return *this;
  }

  UserPropertyDispT& operator=(UserPropertyPtr pintf)
  {
    TAutoDriver<UserProperty>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Formula(BSTR* Formula/*[out,retval]*/);
  BSTR            __fastcall get_Formula(void);
  HRESULT         __fastcall set_Formula(BSTR Formula/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/);
  Outlook_xp::OlUserPropertyType __fastcall get_Type(void);
  HRESULT         __fastcall get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/);
  BSTR            __fastcall get_ValidationFormula(void);
  HRESULT         __fastcall set_ValidationFormula(BSTR ValidationFormula/*[in]*/);
  HRESULT         __fastcall get_ValidationText(BSTR* ValidationText/*[out,retval]*/);
  BSTR            __fastcall get_ValidationText(void);
  HRESULT         __fastcall set_ValidationText(BSTR ValidationText/*[in]*/);
  HRESULT         __fastcall get_Value(VARIANT* Value/*[out,retval]*/);
  VARIANT         __fastcall get_Value(void);
  HRESULT         __fastcall set_Value(VARIANT Value/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsUserProperty(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Formula = {read = get_Formula, write = set_Formula};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlUserPropertyType Type = {read = get_Type};
  __property   BSTR            ValidationFormula = {read = get_ValidationFormula, write = set_ValidationFormula};
  __property   BSTR            ValidationText = {read = get_ValidationText, write = set_ValidationText};
  __property   VARIANT_BOOL    IsUserProperty = {read = get_IsUserProperty};
};
typedef UserPropertyDispT<UserProperty> UserPropertyDisp;

typedef TComInterface<Recipients>  TCOMRecipients;

// *********************************************************************//
// DispIntf:  Recipients
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303B-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class RecipientsDispT : public TAutoDriver<Recipients>
{
public:
  RecipientsDispT(){}

  RecipientsDispT(Recipients *pintf)
  {
    TAutoDriver<Recipients>::Bind(pintf, false);
  }

  RecipientsDispT(RecipientsPtr pintf)
  {
    TAutoDriver<Recipients>::Bind(pintf, true);
  }

  RecipientsDispT& operator=(Recipients *pintf)
  {
    TAutoDriver<Recipients>::Bind(pintf, false);
    return *this;
  }

  RecipientsDispT& operator=(RecipientsPtr pintf)
  {
    TAutoDriver<Recipients>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::Recipient** Item/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, 
                                 Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall Add(BSTR Name/*[in]*/);
  HRESULT         __fastcall Remove(long Index/*[in]*/);
  HRESULT         __fastcall ResolveAll(VARIANT_BOOL* Success/*[out,retval]*/);
  VARIANT_BOOL    __fastcall ResolveAll(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef RecipientsDispT<Recipients> RecipientsDisp;

// *********************************************************************//
// SmartIntf: TCOM_MailItem
// Interface: _MailItem
// *********************************************************************//
template <class T /* _MailItem */ >
class TCOM_MailItemT : public TComInterface<_MailItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_MailItemT() {}
  TCOM_MailItemT(_MailItem *intf, bool addRef = false) : TComInterface<_MailItem>(intf, addRef) {}
  TCOM_MailItemT(const TCOM_MailItemT& src) : TComInterface<_MailItem>(src) {}
  TCOM_MailItemT& operator=(const TCOM_MailItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AlternateRecipientAllowed(VARIANT_BOOL* AlternateRecipientAllowed/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AlternateRecipientAllowed(void);
  HRESULT         __fastcall set_AlternateRecipientAllowed(VARIANT_BOOL AlternateRecipientAllowed/*[in]*/);
  HRESULT         __fastcall get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AutoForwarded(void);
  HRESULT         __fastcall set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/);
  HRESULT         __fastcall get_BCC(BSTR* BCC/*[out,retval]*/);
  BSTR            __fastcall get_BCC(void);
  HRESULT         __fastcall set_BCC(BSTR BCC/*[in]*/);
  HRESULT         __fastcall get_CC(BSTR* CC/*[out,retval]*/);
  BSTR            __fastcall get_CC(void);
  HRESULT         __fastcall set_CC(BSTR CC/*[in]*/);
  HRESULT         __fastcall get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/);
  DATE            __fastcall get_DeferredDeliveryTime(void);
  HRESULT         __fastcall set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/);
  HRESULT         __fastcall get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DeleteAfterSubmit(void);
  HRESULT         __fastcall set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/);
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/);
  DATE            __fastcall get_FlagDueBy(void);
  HRESULT         __fastcall set_FlagDueBy(DATE FlagDueBy/*[in]*/);
  HRESULT         __fastcall get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/);
  BSTR            __fastcall get_FlagRequest(void);
  HRESULT         __fastcall set_FlagRequest(BSTR FlagRequest/*[in]*/);
  HRESULT         __fastcall get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/);
  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void);
  HRESULT         __fastcall set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/);
  HRESULT         __fastcall get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/);
  BSTR            __fastcall get_HTMLBody(void);
  HRESULT         __fastcall set_HTMLBody(BSTR HTMLBody/*[in]*/);
  HRESULT         __fastcall get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_OriginatorDeliveryReportRequested(void);
  HRESULT         __fastcall set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/);
  HRESULT         __fastcall get_ReadReceiptRequested(VARIANT_BOOL* ReadReceiptRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReadReceiptRequested(void);
  HRESULT         __fastcall set_ReadReceiptRequested(VARIANT_BOOL ReadReceiptRequested/*[in]*/);
  HRESULT         __fastcall get_ReceivedByEntryID(BSTR* ReceivedByEntryID/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedByEntryID(void);
  HRESULT         __fastcall get_ReceivedByName(BSTR* ReceivedByName/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedByName(void);
  HRESULT         __fastcall get_ReceivedOnBehalfOfEntryID(BSTR* ReceivedOnBehalfOfEntryID/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedOnBehalfOfEntryID(void);
  HRESULT         __fastcall get_ReceivedOnBehalfOfName(BSTR* ReceivedOnBehalfOfName/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedOnBehalfOfName(void);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall get_RecipientReassignmentProhibited(VARIANT_BOOL* RecipientReassignmentProhibited/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_RecipientReassignmentProhibited(void);
  HRESULT         __fastcall set_RecipientReassignmentProhibited(VARIANT_BOOL RecipientReassignmentProhibited/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_RemoteStatus(Outlook_xp::OlRemoteStatus* RemoteStatus/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_RemoteStatus(void);
  HRESULT         __fastcall set_RemoteStatus(Outlook_xp::OlRemoteStatus RemoteStatus/*[in]*/);
  HRESULT         __fastcall get_ReplyRecipientNames(BSTR* ReplyRecipientNames/*[out,retval]*/);
  BSTR            __fastcall get_ReplyRecipientNames(void);
  HRESULT         __fastcall get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void);
  HRESULT         __fastcall get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void);
  HRESULT         __fastcall _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Sent(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall get_SentOnBehalfOfName(BSTR* SentOnBehalfOfName/*[out,retval]*/);
  BSTR            __fastcall get_SentOnBehalfOfName(void);
  HRESULT         __fastcall set_SentOnBehalfOfName(BSTR SentOnBehalfOfName/*[in]*/);
  HRESULT         __fastcall get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Submitted(void);
  HRESULT         __fastcall get_To(BSTR* To/*[out,retval]*/);
  BSTR            __fastcall get_To(void);
  HRESULT         __fastcall set_To(BSTR To/*[in]*/);
  HRESULT         __fastcall get_VotingOptions(BSTR* VotingOptions/*[out,retval]*/);
  BSTR            __fastcall get_VotingOptions(void);
  HRESULT         __fastcall set_VotingOptions(BSTR VotingOptions/*[in]*/);
  HRESULT         __fastcall get_VotingResponse(BSTR* VotingResponse/*[out,retval]*/);
  BSTR            __fastcall get_VotingResponse(void);
  HRESULT         __fastcall set_VotingResponse(BSTR VotingResponse/*[in]*/);
  HRESULT         __fastcall ClearConversationIndex(void);
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall Send(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/);
  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void);
  HRESULT         __fastcall set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AlternateRecipientAllowed = {read = get_AlternateRecipientAllowed, write = set_AlternateRecipientAllowed};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   BSTR            BCC = {read = get_BCC, write = set_BCC};
  __property   BSTR            CC = {read = get_CC, write = set_CC};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   VARIANT_BOOL    ReadReceiptRequested = {read = get_ReadReceiptRequested, write = set_ReadReceiptRequested};
  __property   BSTR            ReceivedByEntryID = {read = get_ReceivedByEntryID};
  __property   BSTR            ReceivedByName = {read = get_ReceivedByName};
  __property   BSTR            ReceivedOnBehalfOfEntryID = {read = get_ReceivedOnBehalfOfEntryID};
  __property   BSTR            ReceivedOnBehalfOfName = {read = get_ReceivedOnBehalfOfName};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   VARIANT_BOOL    RecipientReassignmentProhibited = {read = get_RecipientReassignmentProhibited, write = set_RecipientReassignmentProhibited};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::OlRemoteStatus RemoteStatus = {read = get_RemoteStatus, write = set_RemoteStatus};
  __property   BSTR            ReplyRecipientNames = {read = get_ReplyRecipientNames};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   BSTR            SentOnBehalfOfName = {read = get_SentOnBehalfOfName, write = set_SentOnBehalfOfName};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   BSTR            To = {read = get_To, write = set_To};
  __property   BSTR            VotingOptions = {read = get_VotingOptions, write = set_VotingOptions};
  __property   BSTR            VotingResponse = {read = get_VotingResponse, write = set_VotingResponse};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_MailItemT<_MailItem> TCOM_MailItem;

// *********************************************************************//
// DispIntf:  _MailItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063034-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _MailItemDispT : public TAutoDriver<_MailItem>
{
public:
  _MailItemDispT(){}

  _MailItemDispT(_MailItem *pintf)
  {
    TAutoDriver<_MailItem>::Bind(pintf, false);
  }

  _MailItemDispT(_MailItemPtr pintf)
  {
    TAutoDriver<_MailItem>::Bind(pintf, true);
  }

  _MailItemDispT& operator=(_MailItem *pintf)
  {
    TAutoDriver<_MailItem>::Bind(pintf, false);
    return *this;
  }

  _MailItemDispT& operator=(_MailItemPtr pintf)
  {
    TAutoDriver<_MailItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MailItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MailItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AlternateRecipientAllowed(VARIANT_BOOL* AlternateRecipientAllowed/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AlternateRecipientAllowed(void);
  HRESULT         __fastcall set_AlternateRecipientAllowed(VARIANT_BOOL AlternateRecipientAllowed/*[in]*/);
  HRESULT         __fastcall get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AutoForwarded(void);
  HRESULT         __fastcall set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/);
  HRESULT         __fastcall get_BCC(BSTR* BCC/*[out,retval]*/);
  BSTR            __fastcall get_BCC(void);
  HRESULT         __fastcall set_BCC(BSTR BCC/*[in]*/);
  HRESULT         __fastcall get_CC(BSTR* CC/*[out,retval]*/);
  BSTR            __fastcall get_CC(void);
  HRESULT         __fastcall set_CC(BSTR CC/*[in]*/);
  HRESULT         __fastcall get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/);
  DATE            __fastcall get_DeferredDeliveryTime(void);
  HRESULT         __fastcall set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/);
  HRESULT         __fastcall get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DeleteAfterSubmit(void);
  HRESULT         __fastcall set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/);
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/);
  DATE            __fastcall get_FlagDueBy(void);
  HRESULT         __fastcall set_FlagDueBy(DATE FlagDueBy/*[in]*/);
  HRESULT         __fastcall get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/);
  BSTR            __fastcall get_FlagRequest(void);
  HRESULT         __fastcall set_FlagRequest(BSTR FlagRequest/*[in]*/);
  HRESULT         __fastcall get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/);
  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void);
  HRESULT         __fastcall set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/);
  HRESULT         __fastcall get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/);
  BSTR            __fastcall get_HTMLBody(void);
  HRESULT         __fastcall set_HTMLBody(BSTR HTMLBody/*[in]*/);
  HRESULT         __fastcall get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_OriginatorDeliveryReportRequested(void);
  HRESULT         __fastcall set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/);
  HRESULT         __fastcall get_ReadReceiptRequested(VARIANT_BOOL* ReadReceiptRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReadReceiptRequested(void);
  HRESULT         __fastcall set_ReadReceiptRequested(VARIANT_BOOL ReadReceiptRequested/*[in]*/);
  HRESULT         __fastcall get_ReceivedByEntryID(BSTR* ReceivedByEntryID/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedByEntryID(void);
  HRESULT         __fastcall get_ReceivedByName(BSTR* ReceivedByName/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedByName(void);
  HRESULT         __fastcall get_ReceivedOnBehalfOfEntryID(BSTR* ReceivedOnBehalfOfEntryID/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedOnBehalfOfEntryID(void);
  HRESULT         __fastcall get_ReceivedOnBehalfOfName(BSTR* ReceivedOnBehalfOfName/*[out,retval]*/);
  BSTR            __fastcall get_ReceivedOnBehalfOfName(void);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall get_RecipientReassignmentProhibited(VARIANT_BOOL* RecipientReassignmentProhibited/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_RecipientReassignmentProhibited(void);
  HRESULT         __fastcall set_RecipientReassignmentProhibited(VARIANT_BOOL RecipientReassignmentProhibited/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_RemoteStatus(Outlook_xp::OlRemoteStatus* RemoteStatus/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_RemoteStatus(void);
  HRESULT         __fastcall set_RemoteStatus(Outlook_xp::OlRemoteStatus RemoteStatus/*[in]*/);
  HRESULT         __fastcall get_ReplyRecipientNames(BSTR* ReplyRecipientNames/*[out,retval]*/);
  BSTR            __fastcall get_ReplyRecipientNames(void);
  HRESULT         __fastcall get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void);
  HRESULT         __fastcall get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void);
  HRESULT         __fastcall _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Sent(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall get_SentOnBehalfOfName(BSTR* SentOnBehalfOfName/*[out,retval]*/);
  BSTR            __fastcall get_SentOnBehalfOfName(void);
  HRESULT         __fastcall set_SentOnBehalfOfName(BSTR SentOnBehalfOfName/*[in]*/);
  HRESULT         __fastcall get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Submitted(void);
  HRESULT         __fastcall get_To(BSTR* To/*[out,retval]*/);
  BSTR            __fastcall get_To(void);
  HRESULT         __fastcall set_To(BSTR To/*[in]*/);
  HRESULT         __fastcall get_VotingOptions(BSTR* VotingOptions/*[out,retval]*/);
  BSTR            __fastcall get_VotingOptions(void);
  HRESULT         __fastcall set_VotingOptions(BSTR VotingOptions/*[in]*/);
  HRESULT         __fastcall get_VotingResponse(BSTR* VotingResponse/*[out,retval]*/);
  BSTR            __fastcall get_VotingResponse(void);
  HRESULT         __fastcall set_VotingResponse(BSTR VotingResponse/*[in]*/);
  HRESULT         __fastcall ClearConversationIndex();
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall Send();
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/);
  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void);
  HRESULT         __fastcall set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AlternateRecipientAllowed = {read = get_AlternateRecipientAllowed, write = set_AlternateRecipientAllowed};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   BSTR            BCC = {read = get_BCC, write = set_BCC};
  __property   BSTR            CC = {read = get_CC, write = set_CC};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   VARIANT_BOOL    ReadReceiptRequested = {read = get_ReadReceiptRequested, write = set_ReadReceiptRequested};
  __property   BSTR            ReceivedByEntryID = {read = get_ReceivedByEntryID};
  __property   BSTR            ReceivedByName = {read = get_ReceivedByName};
  __property   BSTR            ReceivedOnBehalfOfEntryID = {read = get_ReceivedOnBehalfOfEntryID};
  __property   BSTR            ReceivedOnBehalfOfName = {read = get_ReceivedOnBehalfOfName};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   VARIANT_BOOL    RecipientReassignmentProhibited = {read = get_RecipientReassignmentProhibited, write = set_RecipientReassignmentProhibited};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::OlRemoteStatus RemoteStatus = {read = get_RemoteStatus, write = set_RemoteStatus};
  __property   BSTR            ReplyRecipientNames = {read = get_ReplyRecipientNames};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   BSTR            SentOnBehalfOfName = {read = get_SentOnBehalfOfName, write = set_SentOnBehalfOfName};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   BSTR            To = {read = get_To, write = set_To};
  __property   BSTR            VotingOptions = {read = get_VotingOptions, write = set_VotingOptions};
  __property   BSTR            VotingResponse = {read = get_VotingResponse, write = set_VotingResponse};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _MailItemDispT<_MailItem> _MailItemDisp;

// *********************************************************************//
// DispIntf:  ItemEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006303A-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ItemEventsDispT : public TAutoDriver<ItemEvents>
{
public:
  ItemEventsDispT(){}

  ItemEventsDispT(ItemEvents *pintf)
  {
    TAutoDriver<ItemEvents>::Bind(pintf, false);
  }

  ItemEventsDispT(ItemEventsPtr pintf)
  {
    TAutoDriver<ItemEvents>::Bind(pintf, true);
  }

  ItemEventsDispT& operator=(ItemEvents *pintf)
  {
    TAutoDriver<ItemEvents>::Bind(pintf, false);
    return *this;
  }

  ItemEventsDispT& operator=(ItemEventsPtr pintf)
  {
    TAutoDriver<ItemEvents>::Bind(pintf, true);
    return *this;
  }

  void            __fastcall Open(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                                          VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall CustomPropertyChange(BSTR Name/*[in]*/);
  void            __fastcall Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall Close(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall PropertyChange(BSTR Name/*[in]*/);
  void            __fastcall Read();
  void            __fastcall Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall Send(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall Write(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/);
  void            __fastcall AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/);
  void            __fastcall BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                                  VARIANT_BOOL* Cancel/*[in]*/);

};
typedef ItemEventsDispT<ItemEvents> ItemEventsDisp;

typedef TComInterface<Links>  TCOMLinks;

// *********************************************************************//
// DispIntf:  Links
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308A-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class LinksDispT : public TAutoDriver<Links>
{
public:
  LinksDispT(){}

  LinksDispT(Links *pintf)
  {
    TAutoDriver<Links>::Bind(pintf, false);
  }

  LinksDispT(LinksPtr pintf)
  {
    TAutoDriver<Links>::Bind(pintf, true);
  }

  LinksDispT& operator=(Links *pintf)
  {
    TAutoDriver<Links>::Bind(pintf, false);
    return *this;
  }

  LinksDispT& operator=(LinksPtr pintf)
  {
    TAutoDriver<Links>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, Outlook_xp::Link** Item/*[out,retval]*/);
  Outlook_xp::Link* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(LPDISPATCH Item/*[in]*/, Outlook_xp::Link** Link/*[out,retval]*/);
  Outlook_xp::Link* __fastcall Add(LPDISPATCH Item/*[in]*/);
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef LinksDispT<Links> LinksDisp;

typedef TComInterface<Link>  TCOMLink;

// *********************************************************************//
// DispIntf:  Link
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063089-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class LinkDispT : public TAutoDriver<Link>
{
public:
  LinkDispT(){}

  LinkDispT(Link *pintf)
  {
    TAutoDriver<Link>::Bind(pintf, false);
  }

  LinkDispT(LinkPtr pintf)
  {
    TAutoDriver<Link>::Bind(pintf, true);
  }

  LinkDispT& operator=(Link *pintf)
  {
    TAutoDriver<Link>::Bind(pintf, false);
    return *this;
  }

  LinkDispT& operator=(LinkPtr pintf)
  {
    TAutoDriver<Link>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Type(Outlook_xp::OlObjectClass* Type/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Type(void);
  HRESULT         __fastcall get_Item(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Item(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlObjectClass Type = {read = get_Type};
  __property   LPDISPATCH      Item = {read = get_Item};
};
typedef LinkDispT<Link> LinkDisp;

typedef TComInterface<ItemProperties>  TCOMItemProperties;

// *********************************************************************//
// DispIntf:  ItemProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A8-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ItemPropertiesDispT : public TAutoDriver<ItemProperties>
{
public:
  ItemPropertiesDispT(){}

  ItemPropertiesDispT(ItemProperties *pintf)
  {
    TAutoDriver<ItemProperties>::Bind(pintf, false);
  }

  ItemPropertiesDispT(ItemPropertiesPtr pintf)
  {
    TAutoDriver<ItemProperties>::Bind(pintf, true);
  }

  ItemPropertiesDispT& operator=(ItemProperties *pintf)
  {
    TAutoDriver<ItemProperties>::Bind(pintf, false);
    return *this;
  }

  ItemPropertiesDispT& operator=(ItemPropertiesPtr pintf)
  {
    TAutoDriver<ItemProperties>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::ItemProperty** Item/*[out,retval]*/);
  Outlook_xp::ItemProperty* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall _NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall _NewEnum(void);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                 VARIANT AddToFolderFields/*[in,opt]*/, 
                                 VARIANT DisplayFormat/*[in,opt]*/, 
                                 Outlook_xp::ItemProperty** ItemProperty/*[out,retval]*/);
  Outlook_xp::ItemProperty* __fastcall Add(BSTR Name/*[in]*/, 
                                           Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                                           VARIANT AddToFolderFields/*[in,opt]*/= TNoParam(), 
                                           VARIANT DisplayFormat/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef ItemPropertiesDispT<ItemProperties> ItemPropertiesDisp;

typedef TComInterface<ItemProperty>  TCOMItemProperty;

// *********************************************************************//
// DispIntf:  ItemProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A7-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ItemPropertyDispT : public TAutoDriver<ItemProperty>
{
public:
  ItemPropertyDispT(){}

  ItemPropertyDispT(ItemProperty *pintf)
  {
    TAutoDriver<ItemProperty>::Bind(pintf, false);
  }

  ItemPropertyDispT(ItemPropertyPtr pintf)
  {
    TAutoDriver<ItemProperty>::Bind(pintf, true);
  }

  ItemPropertyDispT& operator=(ItemProperty *pintf)
  {
    TAutoDriver<ItemProperty>::Bind(pintf, false);
    return *this;
  }

  ItemPropertyDispT& operator=(ItemPropertyPtr pintf)
  {
    TAutoDriver<ItemProperty>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Formula(BSTR* Formula/*[out,retval]*/);
  BSTR            __fastcall get_Formula(void);
  HRESULT         __fastcall set_Formula(BSTR Formula/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/);
  Outlook_xp::OlUserPropertyType __fastcall get_Type(void);
  HRESULT         __fastcall get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/);
  BSTR            __fastcall get_ValidationFormula(void);
  HRESULT         __fastcall set_ValidationFormula(BSTR ValidationFormula/*[in]*/);
  HRESULT         __fastcall get_ValidationText(BSTR* ValidationText/*[out,retval]*/);
  BSTR            __fastcall get_ValidationText(void);
  HRESULT         __fastcall set_ValidationText(BSTR ValidationText/*[in]*/);
  HRESULT         __fastcall get_Value(VARIANT* Value/*[out,retval]*/);
  VARIANT         __fastcall get_Value(void);
  HRESULT         __fastcall set_Value(VARIANT Value/*[in]*/);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsUserProperty(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Formula = {read = get_Formula, write = set_Formula};
  __property   BSTR            Name = {read = get_Name};
  __property   Outlook_xp::OlUserPropertyType Type = {read = get_Type};
  __property   BSTR            ValidationFormula = {read = get_ValidationFormula, write = set_ValidationFormula};
  __property   BSTR            ValidationText = {read = get_ValidationText, write = set_ValidationText};
  __property   VARIANT_BOOL    IsUserProperty = {read = get_IsUserProperty};
};
typedef ItemPropertyDispT<ItemProperty> ItemPropertyDisp;

// *********************************************************************//
// DispIntf:  ItemEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ItemEvents_10DispT : public TAutoDriver<ItemEvents_10>
{
public:
  ItemEvents_10DispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  HRESULT         __fastcall Open(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                                          VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall CustomPropertyChange(BSTR Name/*[in]*/);
  HRESULT         __fastcall Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall Close(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall PropertyChange(BSTR Name/*[in]*/);
  HRESULT         __fastcall Read();
  HRESULT         __fastcall Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall Send(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall Write(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/);
  HRESULT         __fastcall AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/);
  HRESULT         __fastcall BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                                  VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeDelete(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);

};
typedef ItemEvents_10DispT<ItemEvents_10> ItemEvents_10Disp;

typedef TComInterface<RecurrencePattern>  TCOMRecurrencePattern;

// *********************************************************************//
// DispIntf:  RecurrencePattern
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063044-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class RecurrencePatternDispT : public TAutoDriver<RecurrencePattern>
{
public:
  RecurrencePatternDispT(){}

  RecurrencePatternDispT(RecurrencePattern *pintf)
  {
    TAutoDriver<RecurrencePattern>::Bind(pintf, false);
  }

  RecurrencePatternDispT(RecurrencePatternPtr pintf)
  {
    TAutoDriver<RecurrencePattern>::Bind(pintf, true);
  }

  RecurrencePatternDispT& operator=(RecurrencePattern *pintf)
  {
    TAutoDriver<RecurrencePattern>::Bind(pintf, false);
    return *this;
  }

  RecurrencePatternDispT& operator=(RecurrencePatternPtr pintf)
  {
    TAutoDriver<RecurrencePattern>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_DayOfMonth(long* DayOfMonth/*[out,retval]*/);
  long            __fastcall get_DayOfMonth(void);
  HRESULT         __fastcall set_DayOfMonth(long DayOfMonth/*[in]*/);
  HRESULT         __fastcall get_DayOfWeekMask(Outlook_xp::OlDaysOfWeek* DayOfWeekMask/*[out,retval]*/);
  Outlook_xp::OlDaysOfWeek __fastcall get_DayOfWeekMask(void);
  HRESULT         __fastcall set_DayOfWeekMask(Outlook_xp::OlDaysOfWeek DayOfWeekMask/*[in]*/);
  HRESULT         __fastcall get_Duration(long* Duration/*[out,retval]*/);
  long            __fastcall get_Duration(void);
  HRESULT         __fastcall set_Duration(long Duration/*[in]*/);
  HRESULT         __fastcall get_EndTime(DATE* EndTime/*[out,retval]*/);
  DATE            __fastcall get_EndTime(void);
  HRESULT         __fastcall set_EndTime(DATE EndTime/*[in]*/);
  HRESULT         __fastcall get_Exceptions(Outlook_xp::Exceptions** Exceptions/*[out,retval]*/);
  Outlook_xp::ExceptionsPtr __fastcall get_Exceptions(void);
  HRESULT         __fastcall get_Instance(long* Instance/*[out,retval]*/);
  long            __fastcall get_Instance(void);
  HRESULT         __fastcall set_Instance(long Instance/*[in]*/);
  HRESULT         __fastcall get_Interval(long* Interval/*[out,retval]*/);
  long            __fastcall get_Interval(void);
  HRESULT         __fastcall set_Interval(long Interval/*[in]*/);
  HRESULT         __fastcall get_MonthOfYear(long* MonthOfYear/*[out,retval]*/);
  long            __fastcall get_MonthOfYear(void);
  HRESULT         __fastcall set_MonthOfYear(long MonthOfYear/*[in]*/);
  HRESULT         __fastcall get_NoEndDate(VARIANT_BOOL* NoEndDate/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoEndDate(void);
  HRESULT         __fastcall set_NoEndDate(VARIANT_BOOL NoEndDate/*[in]*/);
  HRESULT         __fastcall get_Occurrences(long* Occurrences/*[out,retval]*/);
  long            __fastcall get_Occurrences(void);
  HRESULT         __fastcall set_Occurrences(long Occurrences/*[in]*/);
  HRESULT         __fastcall get_PatternEndDate(DATE* PatternEndDate/*[out,retval]*/);
  DATE            __fastcall get_PatternEndDate(void);
  HRESULT         __fastcall set_PatternEndDate(DATE PatternEndDate/*[in]*/);
  HRESULT         __fastcall get_PatternStartDate(DATE* PatternStartDate/*[out,retval]*/);
  DATE            __fastcall get_PatternStartDate(void);
  HRESULT         __fastcall set_PatternStartDate(DATE PatternStartDate/*[in]*/);
  HRESULT         __fastcall get_RecurrenceType(Outlook_xp::OlRecurrenceType* RecurrenceType/*[out,retval]*/);
  Outlook_xp::OlRecurrenceType __fastcall get_RecurrenceType(void);
  HRESULT         __fastcall set_RecurrenceType(Outlook_xp::OlRecurrenceType RecurrenceType/*[in]*/);
  HRESULT         __fastcall get_Regenerate(VARIANT_BOOL* Regenerate/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Regenerate(void);
  HRESULT         __fastcall set_Regenerate(VARIANT_BOOL Regenerate/*[in]*/);
  HRESULT         __fastcall get_StartTime(DATE* StartTime/*[out,retval]*/);
  DATE            __fastcall get_StartTime(void);
  HRESULT         __fastcall set_StartTime(DATE StartTime/*[in]*/);
  HRESULT         __fastcall GetOccurrence(DATE StartDate/*[in]*/, 
                                           Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/);
  Outlook_xp::AppointmentItem* __fastcall GetOccurrence(DATE StartDate/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            DayOfMonth = {read = get_DayOfMonth, write = set_DayOfMonth};
  __property   Outlook_xp::OlDaysOfWeek DayOfWeekMask = {read = get_DayOfWeekMask, write = set_DayOfWeekMask};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            EndTime = {read = get_EndTime, write = set_EndTime};
  __property   Outlook_xp::ExceptionsPtr Exceptions = {read = get_Exceptions};
  __property   long            Instance = {read = get_Instance, write = set_Instance};
  __property   long            Interval = {read = get_Interval, write = set_Interval};
  __property   long            MonthOfYear = {read = get_MonthOfYear, write = set_MonthOfYear};
  __property   VARIANT_BOOL    NoEndDate = {read = get_NoEndDate, write = set_NoEndDate};
  __property   long            Occurrences = {read = get_Occurrences, write = set_Occurrences};
  __property   DATE            PatternEndDate = {read = get_PatternEndDate, write = set_PatternEndDate};
  __property   DATE            PatternStartDate = {read = get_PatternStartDate, write = set_PatternStartDate};
  __property   Outlook_xp::OlRecurrenceType RecurrenceType = {read = get_RecurrenceType, write = set_RecurrenceType};
  __property   VARIANT_BOOL    Regenerate = {read = get_Regenerate, write = set_Regenerate};
  __property   DATE            StartTime = {read = get_StartTime, write = set_StartTime};
};
typedef RecurrencePatternDispT<RecurrencePattern> RecurrencePatternDisp;

typedef TComInterface<Exceptions>  TCOMExceptions;

// *********************************************************************//
// DispIntf:  Exceptions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304C-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ExceptionsDispT : public TAutoDriver<Exceptions>
{
public:
  ExceptionsDispT(){}

  ExceptionsDispT(Exceptions *pintf)
  {
    TAutoDriver<Exceptions>::Bind(pintf, false);
  }

  ExceptionsDispT(ExceptionsPtr pintf)
  {
    TAutoDriver<Exceptions>::Bind(pintf, true);
  }

  ExceptionsDispT& operator=(Exceptions *pintf)
  {
    TAutoDriver<Exceptions>::Bind(pintf, false);
    return *this;
  }

  ExceptionsDispT& operator=(ExceptionsPtr pintf)
  {
    TAutoDriver<Exceptions>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::Exception** Item/*[out,retval]*/);
  Outlook_xp::Exception* __fastcall Item(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef ExceptionsDispT<Exceptions> ExceptionsDisp;

typedef TComInterface<Exception>  TCOMException;

// *********************************************************************//
// DispIntf:  Exception
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304D-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class ExceptionDispT : public TAutoDriver<Exception>
{
public:
  ExceptionDispT(){}

  ExceptionDispT(Exception *pintf)
  {
    TAutoDriver<Exception>::Bind(pintf, false);
  }

  ExceptionDispT(ExceptionPtr pintf)
  {
    TAutoDriver<Exception>::Bind(pintf, true);
  }

  ExceptionDispT& operator=(Exception *pintf)
  {
    TAutoDriver<Exception>::Bind(pintf, false);
    return *this;
  }

  ExceptionDispT& operator=(ExceptionPtr pintf)
  {
    TAutoDriver<Exception>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_AppointmentItem(Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/);
  Outlook_xp::AppointmentItemPtr __fastcall get_AppointmentItem(void);
  HRESULT         __fastcall get_Deleted(VARIANT_BOOL* Deleted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Deleted(void);
  HRESULT         __fastcall get_OriginalDate(DATE* OriginalDate/*[out,retval]*/);
  DATE            __fastcall get_OriginalDate(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::AppointmentItemPtr AppointmentItem = {read = get_AppointmentItem};
  __property   VARIANT_BOOL    Deleted = {read = get_Deleted};
  __property   DATE            OriginalDate = {read = get_OriginalDate};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
};
typedef ExceptionDispT<Exception> ExceptionDisp;

// *********************************************************************//
// SmartIntf: TCOM_MeetingItem
// Interface: _MeetingItem
// *********************************************************************//
template <class T /* _MeetingItem */ >
class TCOM_MeetingItemT : public TComInterface<_MeetingItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_MeetingItemT() {}
  TCOM_MeetingItemT(_MeetingItem *intf, bool addRef = false) : TComInterface<_MeetingItem>(intf, addRef) {}
  TCOM_MeetingItemT(const TCOM_MeetingItemT& src) : TComInterface<_MeetingItem>(src) {}
  TCOM_MeetingItemT& operator=(const TCOM_MeetingItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AutoForwarded(void);
  HRESULT         __fastcall set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/);
  HRESULT         __fastcall get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/);
  DATE            __fastcall get_DeferredDeliveryTime(void);
  HRESULT         __fastcall set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/);
  HRESULT         __fastcall get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DeleteAfterSubmit(void);
  HRESULT         __fastcall set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/);
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/);
  DATE            __fastcall get_FlagDueBy(void);
  HRESULT         __fastcall set_FlagDueBy(DATE FlagDueBy/*[in]*/);
  HRESULT         __fastcall get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/);
  BSTR            __fastcall get_FlagRequest(void);
  HRESULT         __fastcall set_FlagRequest(BSTR FlagRequest/*[in]*/);
  HRESULT         __fastcall get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/);
  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void);
  HRESULT         __fastcall set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/);
  HRESULT         __fastcall get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_OriginatorDeliveryReportRequested(void);
  HRESULT         __fastcall set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall set_ReceivedTime(DATE ReceivedTime/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void);
  HRESULT         __fastcall get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void);
  HRESULT         __fastcall _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Sent(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Submitted(void);
  HRESULT         __fastcall Forward(Outlook_xp::MeetingItem** Item/*[out,retval]*/);
  Outlook_xp::MeetingItem* __fastcall Forward(void);
  HRESULT         __fastcall GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/, 
                                                      Outlook_xp::AppointmentItem** Item/*[out,retval]*/);
  Outlook_xp::AppointmentItem* __fastcall GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall Send(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime, write = set_ReceivedTime};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_MeetingItemT<_MeetingItem> TCOM_MeetingItem;

// *********************************************************************//
// DispIntf:  _MeetingItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063062-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _MeetingItemDispT : public TAutoDriver<_MeetingItem>
{
public:
  _MeetingItemDispT(){}

  _MeetingItemDispT(_MeetingItem *pintf)
  {
    TAutoDriver<_MeetingItem>::Bind(pintf, false);
  }

  _MeetingItemDispT(_MeetingItemPtr pintf)
  {
    TAutoDriver<_MeetingItem>::Bind(pintf, true);
  }

  _MeetingItemDispT& operator=(_MeetingItem *pintf)
  {
    TAutoDriver<_MeetingItem>::Bind(pintf, false);
    return *this;
  }

  _MeetingItemDispT& operator=(_MeetingItemPtr pintf)
  {
    TAutoDriver<_MeetingItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MeetingItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MeetingItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_AutoForwarded(void);
  HRESULT         __fastcall set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/);
  HRESULT         __fastcall get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/);
  DATE            __fastcall get_DeferredDeliveryTime(void);
  HRESULT         __fastcall set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/);
  HRESULT         __fastcall get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DeleteAfterSubmit(void);
  HRESULT         __fastcall set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/);
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/);
  DATE            __fastcall get_FlagDueBy(void);
  HRESULT         __fastcall set_FlagDueBy(DATE FlagDueBy/*[in]*/);
  HRESULT         __fastcall get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/);
  BSTR            __fastcall get_FlagRequest(void);
  HRESULT         __fastcall set_FlagRequest(BSTR FlagRequest/*[in]*/);
  HRESULT         __fastcall get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/);
  Outlook_xp::OlFlagStatus __fastcall get_FlagStatus(void);
  HRESULT         __fastcall set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/);
  HRESULT         __fastcall get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_OriginatorDeliveryReportRequested(void);
  HRESULT         __fastcall set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall set_ReceivedTime(DATE ReceivedTime/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_ReplyRecipients(void);
  HRESULT         __fastcall get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/);
  Outlook_xp::MAPIFolderPtr __fastcall get_SaveSentMessageFolder(void);
  HRESULT         __fastcall _set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Sent(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Submitted(void);
  HRESULT         __fastcall Forward(Outlook_xp::MeetingItem** Item/*[out,retval]*/);
  Outlook_xp::MeetingItem* __fastcall Forward(void);
  HRESULT         __fastcall GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/, 
                                                      Outlook_xp::AppointmentItem** Item/*[out,retval]*/);
  Outlook_xp::AppointmentItem* __fastcall GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall Send();
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    AutoForwarded = {read = get_AutoForwarded, write = set_AutoForwarded};
  __property   DATE            DeferredDeliveryTime = {read = get_DeferredDeliveryTime, write = set_DeferredDeliveryTime};
  __property   VARIANT_BOOL    DeleteAfterSubmit = {read = get_DeleteAfterSubmit, write = set_DeleteAfterSubmit};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   DATE            FlagDueBy = {read = get_FlagDueBy, write = set_FlagDueBy};
  __property   BSTR            FlagRequest = {read = get_FlagRequest, write = set_FlagRequest};
  __property   Outlook_xp::OlFlagStatus FlagStatus = {read = get_FlagStatus, write = set_FlagStatus};
  __property   VARIANT_BOOL    OriginatorDeliveryReportRequested = {read = get_OriginatorDeliveryReportRequested, write = set_OriginatorDeliveryReportRequested};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime, write = set_ReceivedTime};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   Outlook_xp::RecipientsPtr ReplyRecipients = {read = get_ReplyRecipients};
  __property   Outlook_xp::MAPIFolderPtr SaveSentMessageFolder = {read = get_SaveSentMessageFolder};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   VARIANT_BOOL    Sent = {read = get_Sent};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   VARIANT_BOOL    Submitted = {read = get_Submitted};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _MeetingItemDispT<_MeetingItem> _MeetingItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_ContactItem
// Interface: _ContactItem
// *********************************************************************//
template <class T /* _ContactItem */ >
class TCOM_ContactItemT : public TComInterface<_ContactItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ContactItemT() {}
  TCOM_ContactItemT(_ContactItem *intf, bool addRef = false) : TComInterface<_ContactItem>(intf, addRef) {}
  TCOM_ContactItemT(const TCOM_ContactItemT& src) : TComInterface<_ContactItem>(src) {}
  TCOM_ContactItemT& operator=(const TCOM_ContactItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Account(BSTR* Account/*[out,retval]*/);
  BSTR            __fastcall get_Account(void);
  HRESULT         __fastcall set_Account(BSTR Account/*[in]*/);
  HRESULT         __fastcall get_Anniversary(DATE* Anniversary/*[out,retval]*/);
  DATE            __fastcall get_Anniversary(void);
  HRESULT         __fastcall set_Anniversary(DATE Anniversary/*[in]*/);
  HRESULT         __fastcall get_AssistantName(BSTR* AssistantName/*[out,retval]*/);
  BSTR            __fastcall get_AssistantName(void);
  HRESULT         __fastcall set_AssistantName(BSTR AssistantName/*[in]*/);
  HRESULT         __fastcall get_AssistantTelephoneNumber(BSTR* AssistantTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_AssistantTelephoneNumber(void);
  HRESULT         __fastcall set_AssistantTelephoneNumber(BSTR AssistantTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Birthday(DATE* Birthday/*[out,retval]*/);
  DATE            __fastcall get_Birthday(void);
  HRESULT         __fastcall set_Birthday(DATE Birthday/*[in]*/);
  HRESULT         __fastcall get_Business2TelephoneNumber(BSTR* Business2TelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_Business2TelephoneNumber(void);
  HRESULT         __fastcall set_Business2TelephoneNumber(BSTR Business2TelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_BusinessAddress(BSTR* BusinessAddress/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddress(void);
  HRESULT         __fastcall set_BusinessAddress(BSTR BusinessAddress/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressCity(BSTR* BusinessAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressCity(void);
  HRESULT         __fastcall set_BusinessAddressCity(BSTR BusinessAddressCity/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressCountry(BSTR* BusinessAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressCountry(void);
  HRESULT         __fastcall set_BusinessAddressCountry(BSTR BusinessAddressCountry/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressPostalCode(BSTR* BusinessAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressPostalCode(void);
  HRESULT         __fastcall set_BusinessAddressPostalCode(BSTR BusinessAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressPostOfficeBox(BSTR* BusinessAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressPostOfficeBox(void);
  HRESULT         __fastcall set_BusinessAddressPostOfficeBox(BSTR BusinessAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressState(BSTR* BusinessAddressState/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressState(void);
  HRESULT         __fastcall set_BusinessAddressState(BSTR BusinessAddressState/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressStreet(BSTR* BusinessAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressStreet(void);
  HRESULT         __fastcall set_BusinessAddressStreet(BSTR BusinessAddressStreet/*[in]*/);
  HRESULT         __fastcall get_BusinessFaxNumber(BSTR* BusinessFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_BusinessFaxNumber(void);
  HRESULT         __fastcall set_BusinessFaxNumber(BSTR BusinessFaxNumber/*[in]*/);
  HRESULT         __fastcall get_BusinessHomePage(BSTR* BusinessHomePage/*[out,retval]*/);
  BSTR            __fastcall get_BusinessHomePage(void);
  HRESULT         __fastcall set_BusinessHomePage(BSTR BusinessHomePage/*[in]*/);
  HRESULT         __fastcall get_BusinessTelephoneNumber(BSTR* BusinessTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_BusinessTelephoneNumber(void);
  HRESULT         __fastcall set_BusinessTelephoneNumber(BSTR BusinessTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CallbackTelephoneNumber(BSTR* CallbackTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CallbackTelephoneNumber(void);
  HRESULT         __fastcall set_CallbackTelephoneNumber(BSTR CallbackTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CarTelephoneNumber(BSTR* CarTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CarTelephoneNumber(void);
  HRESULT         __fastcall set_CarTelephoneNumber(BSTR CarTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Children(BSTR* Children/*[out,retval]*/);
  BSTR            __fastcall get_Children(void);
  HRESULT         __fastcall set_Children(BSTR Children/*[in]*/);
  HRESULT         __fastcall get_CompanyAndFullName(BSTR* CompanyAndFullName/*[out,retval]*/);
  BSTR            __fastcall get_CompanyAndFullName(void);
  HRESULT         __fastcall get_CompanyLastFirstNoSpace(BSTR* CompanyLastFirstNoSpace/*[out,retval]*/);
  BSTR            __fastcall get_CompanyLastFirstNoSpace(void);
  HRESULT         __fastcall get_CompanyLastFirstSpaceOnly(BSTR* CompanyLastFirstSpaceOnly/*[out,retval]*/);
  BSTR            __fastcall get_CompanyLastFirstSpaceOnly(void);
  HRESULT         __fastcall get_CompanyMainTelephoneNumber(BSTR* CompanyMainTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CompanyMainTelephoneNumber(void);
  HRESULT         __fastcall set_CompanyMainTelephoneNumber(BSTR CompanyMainTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CompanyName(BSTR* CompanyName/*[out,retval]*/);
  BSTR            __fastcall get_CompanyName(void);
  HRESULT         __fastcall set_CompanyName(BSTR CompanyName/*[in]*/);
  HRESULT         __fastcall get_ComputerNetworkName(BSTR* ComputerNetworkName/*[out,retval]*/);
  BSTR            __fastcall get_ComputerNetworkName(void);
  HRESULT         __fastcall set_ComputerNetworkName(BSTR ComputerNetworkName/*[in]*/);
  HRESULT         __fastcall get_CustomerID(BSTR* CustomerID/*[out,retval]*/);
  BSTR            __fastcall get_CustomerID(void);
  HRESULT         __fastcall set_CustomerID(BSTR CustomerID/*[in]*/);
  HRESULT         __fastcall get_Department(BSTR* Department/*[out,retval]*/);
  BSTR            __fastcall get_Department(void);
  HRESULT         __fastcall set_Department(BSTR Department/*[in]*/);
  HRESULT         __fastcall get_Email1Address(BSTR* Email1Address/*[out,retval]*/);
  BSTR            __fastcall get_Email1Address(void);
  HRESULT         __fastcall set_Email1Address(BSTR Email1Address/*[in]*/);
  HRESULT         __fastcall get_Email1AddressType(BSTR* Email1AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email1AddressType(void);
  HRESULT         __fastcall set_Email1AddressType(BSTR Email1AddressType/*[in]*/);
  HRESULT         __fastcall get_Email1DisplayName(BSTR* Email1DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email1DisplayName(void);
  HRESULT         __fastcall get_Email1EntryID(BSTR* Email1EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email1EntryID(void);
  HRESULT         __fastcall get_Email2Address(BSTR* Email2Address/*[out,retval]*/);
  BSTR            __fastcall get_Email2Address(void);
  HRESULT         __fastcall set_Email2Address(BSTR Email2Address/*[in]*/);
  HRESULT         __fastcall get_Email2AddressType(BSTR* Email2AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email2AddressType(void);
  HRESULT         __fastcall set_Email2AddressType(BSTR Email2AddressType/*[in]*/);
  HRESULT         __fastcall get_Email2DisplayName(BSTR* Email2DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email2DisplayName(void);
  HRESULT         __fastcall get_Email2EntryID(BSTR* Email2EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email2EntryID(void);
  HRESULT         __fastcall get_Email3Address(BSTR* Email3Address/*[out,retval]*/);
  BSTR            __fastcall get_Email3Address(void);
  HRESULT         __fastcall set_Email3Address(BSTR Email3Address/*[in]*/);
  HRESULT         __fastcall get_Email3AddressType(BSTR* Email3AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email3AddressType(void);
  HRESULT         __fastcall set_Email3AddressType(BSTR Email3AddressType/*[in]*/);
  HRESULT         __fastcall get_Email3DisplayName(BSTR* Email3DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email3DisplayName(void);
  HRESULT         __fastcall get_Email3EntryID(BSTR* Email3EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email3EntryID(void);
  HRESULT         __fastcall get_FileAs(BSTR* FileAs/*[out,retval]*/);
  BSTR            __fastcall get_FileAs(void);
  HRESULT         __fastcall set_FileAs(BSTR FileAs/*[in]*/);
  HRESULT         __fastcall get_FirstName(BSTR* FirstName/*[out,retval]*/);
  BSTR            __fastcall get_FirstName(void);
  HRESULT         __fastcall set_FirstName(BSTR FirstName/*[in]*/);
  HRESULT         __fastcall get_FTPSite(BSTR* FTPSite/*[out,retval]*/);
  BSTR            __fastcall get_FTPSite(void);
  HRESULT         __fastcall set_FTPSite(BSTR FTPSite/*[in]*/);
  HRESULT         __fastcall get_FullName(BSTR* FullName/*[out,retval]*/);
  BSTR            __fastcall get_FullName(void);
  HRESULT         __fastcall set_FullName(BSTR FullName/*[in]*/);
  HRESULT         __fastcall get_FullNameAndCompany(BSTR* FullNameAndCompany/*[out,retval]*/);
  BSTR            __fastcall get_FullNameAndCompany(void);
  HRESULT         __fastcall get_Gender(Outlook_xp::OlGender* Gender/*[out,retval]*/);
  Outlook_xp::OlGender __fastcall get_Gender(void);
  HRESULT         __fastcall set_Gender(Outlook_xp::OlGender Gender/*[in]*/);
  HRESULT         __fastcall get_GovernmentIDNumber(BSTR* GovernmentIDNumber/*[out,retval]*/);
  BSTR            __fastcall get_GovernmentIDNumber(void);
  HRESULT         __fastcall set_GovernmentIDNumber(BSTR GovernmentIDNumber/*[in]*/);
  HRESULT         __fastcall get_Hobby(BSTR* Hobby/*[out,retval]*/);
  BSTR            __fastcall get_Hobby(void);
  HRESULT         __fastcall set_Hobby(BSTR Hobby/*[in]*/);
  HRESULT         __fastcall get_Home2TelephoneNumber(BSTR* Home2TelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_Home2TelephoneNumber(void);
  HRESULT         __fastcall set_Home2TelephoneNumber(BSTR Home2TelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_HomeAddress(BSTR* HomeAddress/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddress(void);
  HRESULT         __fastcall set_HomeAddress(BSTR HomeAddress/*[in]*/);
  HRESULT         __fastcall get_HomeAddressCity(BSTR* HomeAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressCity(void);
  HRESULT         __fastcall set_HomeAddressCity(BSTR HomeAddressCity/*[in]*/);
  HRESULT         __fastcall get_HomeAddressCountry(BSTR* HomeAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressCountry(void);
  HRESULT         __fastcall set_HomeAddressCountry(BSTR HomeAddressCountry/*[in]*/);
  HRESULT         __fastcall get_HomeAddressPostalCode(BSTR* HomeAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressPostalCode(void);
  HRESULT         __fastcall set_HomeAddressPostalCode(BSTR HomeAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_HomeAddressPostOfficeBox(BSTR* HomeAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressPostOfficeBox(void);
  HRESULT         __fastcall set_HomeAddressPostOfficeBox(BSTR HomeAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_HomeAddressState(BSTR* HomeAddressState/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressState(void);
  HRESULT         __fastcall set_HomeAddressState(BSTR HomeAddressState/*[in]*/);
  HRESULT         __fastcall get_HomeAddressStreet(BSTR* HomeAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressStreet(void);
  HRESULT         __fastcall set_HomeAddressStreet(BSTR HomeAddressStreet/*[in]*/);
  HRESULT         __fastcall get_HomeFaxNumber(BSTR* HomeFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_HomeFaxNumber(void);
  HRESULT         __fastcall set_HomeFaxNumber(BSTR HomeFaxNumber/*[in]*/);
  HRESULT         __fastcall get_HomeTelephoneNumber(BSTR* HomeTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_HomeTelephoneNumber(void);
  HRESULT         __fastcall set_HomeTelephoneNumber(BSTR HomeTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Initials(BSTR* Initials/*[out,retval]*/);
  BSTR            __fastcall get_Initials(void);
  HRESULT         __fastcall set_Initials(BSTR Initials/*[in]*/);
  HRESULT         __fastcall get_InternetFreeBusyAddress(BSTR* InternetFreeBusyAddress/*[out,retval]*/);
  BSTR            __fastcall get_InternetFreeBusyAddress(void);
  HRESULT         __fastcall set_InternetFreeBusyAddress(BSTR InternetFreeBusyAddress/*[in]*/);
  HRESULT         __fastcall get_ISDNNumber(BSTR* ISDNNumber/*[out,retval]*/);
  BSTR            __fastcall get_ISDNNumber(void);
  HRESULT         __fastcall set_ISDNNumber(BSTR ISDNNumber/*[in]*/);
  HRESULT         __fastcall get_JobTitle(BSTR* JobTitle/*[out,retval]*/);
  BSTR            __fastcall get_JobTitle(void);
  HRESULT         __fastcall set_JobTitle(BSTR JobTitle/*[in]*/);
  HRESULT         __fastcall get_Journal(VARIANT_BOOL* Journal/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Journal(void);
  HRESULT         __fastcall set_Journal(VARIANT_BOOL Journal/*[in]*/);
  HRESULT         __fastcall get_Language(BSTR* Language/*[out,retval]*/);
  BSTR            __fastcall get_Language(void);
  HRESULT         __fastcall set_Language(BSTR Language/*[in]*/);
  HRESULT         __fastcall get_LastFirstAndSuffix(BSTR* LastFirstAndSuffix/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstAndSuffix(void);
  HRESULT         __fastcall get_LastFirstNoSpace(BSTR* LastFirstNoSpace/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpace(void);
  HRESULT         __fastcall get_LastFirstNoSpaceCompany(BSTR* LastFirstNoSpaceCompany/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpaceCompany(void);
  HRESULT         __fastcall get_LastFirstSpaceOnly(BSTR* LastFirstSpaceOnly/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstSpaceOnly(void);
  HRESULT         __fastcall get_LastFirstSpaceOnlyCompany(BSTR* LastFirstSpaceOnlyCompany/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstSpaceOnlyCompany(void);
  HRESULT         __fastcall get_LastName(BSTR* LastName/*[out,retval]*/);
  BSTR            __fastcall get_LastName(void);
  HRESULT         __fastcall set_LastName(BSTR LastName/*[in]*/);
  HRESULT         __fastcall get_LastNameAndFirstName(BSTR* LastNameAndFirstName/*[out,retval]*/);
  BSTR            __fastcall get_LastNameAndFirstName(void);
  HRESULT         __fastcall get_MailingAddress(BSTR* MailingAddress/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddress(void);
  HRESULT         __fastcall set_MailingAddress(BSTR MailingAddress/*[in]*/);
  HRESULT         __fastcall get_MailingAddressCity(BSTR* MailingAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressCity(void);
  HRESULT         __fastcall set_MailingAddressCity(BSTR MailingAddressCity/*[in]*/);
  HRESULT         __fastcall get_MailingAddressCountry(BSTR* MailingAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressCountry(void);
  HRESULT         __fastcall set_MailingAddressCountry(BSTR MailingAddressCountry/*[in]*/);
  HRESULT         __fastcall get_MailingAddressPostalCode(BSTR* MailingAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressPostalCode(void);
  HRESULT         __fastcall set_MailingAddressPostalCode(BSTR MailingAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_MailingAddressPostOfficeBox(BSTR* MailingAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressPostOfficeBox(void);
  HRESULT         __fastcall set_MailingAddressPostOfficeBox(BSTR MailingAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_MailingAddressState(BSTR* MailingAddressState/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressState(void);
  HRESULT         __fastcall set_MailingAddressState(BSTR MailingAddressState/*[in]*/);
  HRESULT         __fastcall get_MailingAddressStreet(BSTR* MailingAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressStreet(void);
  HRESULT         __fastcall set_MailingAddressStreet(BSTR MailingAddressStreet/*[in]*/);
  HRESULT         __fastcall get_ManagerName(BSTR* ManagerName/*[out,retval]*/);
  BSTR            __fastcall get_ManagerName(void);
  HRESULT         __fastcall set_ManagerName(BSTR ManagerName/*[in]*/);
  HRESULT         __fastcall get_MiddleName(BSTR* MiddleName/*[out,retval]*/);
  BSTR            __fastcall get_MiddleName(void);
  HRESULT         __fastcall set_MiddleName(BSTR MiddleName/*[in]*/);
  HRESULT         __fastcall get_MobileTelephoneNumber(BSTR* MobileTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_MobileTelephoneNumber(void);
  HRESULT         __fastcall set_MobileTelephoneNumber(BSTR MobileTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_NetMeetingAlias(BSTR* NetMeetingAlias/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingAlias(void);
  HRESULT         __fastcall set_NetMeetingAlias(BSTR NetMeetingAlias/*[in]*/);
  HRESULT         __fastcall get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingServer(void);
  HRESULT         __fastcall set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/);
  HRESULT         __fastcall get_NickName(BSTR* NickName/*[out,retval]*/);
  BSTR            __fastcall get_NickName(void);
  HRESULT         __fastcall set_NickName(BSTR NickName/*[in]*/);
  HRESULT         __fastcall get_OfficeLocation(BSTR* OfficeLocation/*[out,retval]*/);
  BSTR            __fastcall get_OfficeLocation(void);
  HRESULT         __fastcall set_OfficeLocation(BSTR OfficeLocation/*[in]*/);
  HRESULT         __fastcall get_OrganizationalIDNumber(BSTR* OrganizationalIDNumber/*[out,retval]*/);
  BSTR            __fastcall get_OrganizationalIDNumber(void);
  HRESULT         __fastcall set_OrganizationalIDNumber(BSTR OrganizationalIDNumber/*[in]*/);
  HRESULT         __fastcall get_OtherAddress(BSTR* OtherAddress/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddress(void);
  HRESULT         __fastcall set_OtherAddress(BSTR OtherAddress/*[in]*/);
  HRESULT         __fastcall get_OtherAddressCity(BSTR* OtherAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressCity(void);
  HRESULT         __fastcall set_OtherAddressCity(BSTR OtherAddressCity/*[in]*/);
  HRESULT         __fastcall get_OtherAddressCountry(BSTR* OtherAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressCountry(void);
  HRESULT         __fastcall set_OtherAddressCountry(BSTR OtherAddressCountry/*[in]*/);
  HRESULT         __fastcall get_OtherAddressPostalCode(BSTR* OtherAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressPostalCode(void);
  HRESULT         __fastcall set_OtherAddressPostalCode(BSTR OtherAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_OtherAddressPostOfficeBox(BSTR* OtherAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressPostOfficeBox(void);
  HRESULT         __fastcall set_OtherAddressPostOfficeBox(BSTR OtherAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_OtherAddressState(BSTR* OtherAddressState/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressState(void);
  HRESULT         __fastcall set_OtherAddressState(BSTR OtherAddressState/*[in]*/);
  HRESULT         __fastcall get_OtherAddressStreet(BSTR* OtherAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressStreet(void);
  HRESULT         __fastcall set_OtherAddressStreet(BSTR OtherAddressStreet/*[in]*/);
  HRESULT         __fastcall get_OtherFaxNumber(BSTR* OtherFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_OtherFaxNumber(void);
  HRESULT         __fastcall set_OtherFaxNumber(BSTR OtherFaxNumber/*[in]*/);
  HRESULT         __fastcall get_OtherTelephoneNumber(BSTR* OtherTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_OtherTelephoneNumber(void);
  HRESULT         __fastcall set_OtherTelephoneNumber(BSTR OtherTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_PagerNumber(BSTR* PagerNumber/*[out,retval]*/);
  BSTR            __fastcall get_PagerNumber(void);
  HRESULT         __fastcall set_PagerNumber(BSTR PagerNumber/*[in]*/);
  HRESULT         __fastcall get_PersonalHomePage(BSTR* PersonalHomePage/*[out,retval]*/);
  BSTR            __fastcall get_PersonalHomePage(void);
  HRESULT         __fastcall set_PersonalHomePage(BSTR PersonalHomePage/*[in]*/);
  HRESULT         __fastcall get_PrimaryTelephoneNumber(BSTR* PrimaryTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_PrimaryTelephoneNumber(void);
  HRESULT         __fastcall set_PrimaryTelephoneNumber(BSTR PrimaryTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Profession(BSTR* Profession/*[out,retval]*/);
  BSTR            __fastcall get_Profession(void);
  HRESULT         __fastcall set_Profession(BSTR Profession/*[in]*/);
  HRESULT         __fastcall get_RadioTelephoneNumber(BSTR* RadioTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_RadioTelephoneNumber(void);
  HRESULT         __fastcall set_RadioTelephoneNumber(BSTR RadioTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_ReferredBy(BSTR* ReferredBy/*[out,retval]*/);
  BSTR            __fastcall get_ReferredBy(void);
  HRESULT         __fastcall set_ReferredBy(BSTR ReferredBy/*[in]*/);
  HRESULT         __fastcall get_SelectedMailingAddress(Outlook_xp::OlMailingAddress* SelectedMailingAddress/*[out,retval]*/);
  Outlook_xp::OlMailingAddress __fastcall get_SelectedMailingAddress(void);
  HRESULT         __fastcall set_SelectedMailingAddress(Outlook_xp::OlMailingAddress SelectedMailingAddress/*[in]*/);
  HRESULT         __fastcall get_Spouse(BSTR* Spouse/*[out,retval]*/);
  BSTR            __fastcall get_Spouse(void);
  HRESULT         __fastcall set_Spouse(BSTR Spouse/*[in]*/);
  HRESULT         __fastcall get_Suffix(BSTR* Suffix/*[out,retval]*/);
  BSTR            __fastcall get_Suffix(void);
  HRESULT         __fastcall set_Suffix(BSTR Suffix/*[in]*/);
  HRESULT         __fastcall get_TelexNumber(BSTR* TelexNumber/*[out,retval]*/);
  BSTR            __fastcall get_TelexNumber(void);
  HRESULT         __fastcall set_TelexNumber(BSTR TelexNumber/*[in]*/);
  HRESULT         __fastcall get_Title(BSTR* Title/*[out,retval]*/);
  BSTR            __fastcall get_Title(void);
  HRESULT         __fastcall set_Title(BSTR Title/*[in]*/);
  HRESULT         __fastcall get_TTYTDDTelephoneNumber(BSTR* TTYTDDTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_TTYTDDTelephoneNumber(void);
  HRESULT         __fastcall set_TTYTDDTelephoneNumber(BSTR TTYTDDTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_User1(BSTR* User1/*[out,retval]*/);
  BSTR            __fastcall get_User1(void);
  HRESULT         __fastcall set_User1(BSTR User1/*[in]*/);
  HRESULT         __fastcall get_User2(BSTR* User2/*[out,retval]*/);
  BSTR            __fastcall get_User2(void);
  HRESULT         __fastcall set_User2(BSTR User2/*[in]*/);
  HRESULT         __fastcall get_User3(BSTR* User3/*[out,retval]*/);
  BSTR            __fastcall get_User3(void);
  HRESULT         __fastcall set_User3(BSTR User3/*[in]*/);
  HRESULT         __fastcall get_User4(BSTR* User4/*[out,retval]*/);
  BSTR            __fastcall get_User4(void);
  HRESULT         __fastcall set_User4(BSTR User4/*[in]*/);
  HRESULT         __fastcall get_UserCertificate(BSTR* UserCertificate/*[out,retval]*/);
  BSTR            __fastcall get_UserCertificate(void);
  HRESULT         __fastcall set_UserCertificate(BSTR UserCertificate/*[in]*/);
  HRESULT         __fastcall get_WebPage(BSTR* WebPage/*[out,retval]*/);
  BSTR            __fastcall get_WebPage(void);
  HRESULT         __fastcall set_WebPage(BSTR WebPage/*[in]*/);
  HRESULT         __fastcall get_YomiCompanyName(BSTR* YomiCompanyName/*[out,retval]*/);
  BSTR            __fastcall get_YomiCompanyName(void);
  HRESULT         __fastcall set_YomiCompanyName(BSTR YomiCompanyName/*[in]*/);
  HRESULT         __fastcall get_YomiFirstName(BSTR* YomiFirstName/*[out,retval]*/);
  BSTR            __fastcall get_YomiFirstName(void);
  HRESULT         __fastcall set_YomiFirstName(BSTR YomiFirstName/*[in]*/);
  HRESULT         __fastcall get_YomiLastName(BSTR* YomiLastName/*[out,retval]*/);
  BSTR            __fastcall get_YomiLastName(void);
  HRESULT         __fastcall set_YomiLastName(BSTR YomiLastName/*[in]*/);
  HRESULT         __fastcall ForwardAsVcard(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ForwardAsVcard(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_LastFirstNoSpaceAndSuffix(BSTR* LastFirstNoSpaceAndSuffix/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpaceAndSuffix(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_IMAddress(BSTR* IMAddress/*[out,retval]*/);
  BSTR            __fastcall get_IMAddress(void);
  HRESULT         __fastcall set_IMAddress(BSTR IMAddress/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall set_Email1DisplayName(BSTR Email1DisplayName/*[in]*/);
  HRESULT         __fastcall set_Email2DisplayName(BSTR Email2DisplayName/*[in]*/);
  HRESULT         __fastcall set_Email3DisplayName(BSTR Email3DisplayName/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            Account = {read = get_Account, write = set_Account};
  __property   DATE            Anniversary = {read = get_Anniversary, write = set_Anniversary};
  __property   BSTR            AssistantName = {read = get_AssistantName, write = set_AssistantName};
  __property   BSTR            AssistantTelephoneNumber = {read = get_AssistantTelephoneNumber, write = set_AssistantTelephoneNumber};
  __property   DATE            Birthday = {read = get_Birthday, write = set_Birthday};
  __property   BSTR            Business2TelephoneNumber = {read = get_Business2TelephoneNumber, write = set_Business2TelephoneNumber};
  __property   BSTR            BusinessAddress = {read = get_BusinessAddress, write = set_BusinessAddress};
  __property   BSTR            BusinessAddressCity = {read = get_BusinessAddressCity, write = set_BusinessAddressCity};
  __property   BSTR            BusinessAddressCountry = {read = get_BusinessAddressCountry, write = set_BusinessAddressCountry};
  __property   BSTR            BusinessAddressPostalCode = {read = get_BusinessAddressPostalCode, write = set_BusinessAddressPostalCode};
  __property   BSTR            BusinessAddressPostOfficeBox = {read = get_BusinessAddressPostOfficeBox, write = set_BusinessAddressPostOfficeBox};
  __property   BSTR            BusinessAddressState = {read = get_BusinessAddressState, write = set_BusinessAddressState};
  __property   BSTR            BusinessAddressStreet = {read = get_BusinessAddressStreet, write = set_BusinessAddressStreet};
  __property   BSTR            BusinessFaxNumber = {read = get_BusinessFaxNumber, write = set_BusinessFaxNumber};
  __property   BSTR            BusinessHomePage = {read = get_BusinessHomePage, write = set_BusinessHomePage};
  __property   BSTR            BusinessTelephoneNumber = {read = get_BusinessTelephoneNumber, write = set_BusinessTelephoneNumber};
  __property   BSTR            CallbackTelephoneNumber = {read = get_CallbackTelephoneNumber, write = set_CallbackTelephoneNumber};
  __property   BSTR            CarTelephoneNumber = {read = get_CarTelephoneNumber, write = set_CarTelephoneNumber};
  __property   BSTR            Children = {read = get_Children, write = set_Children};
  __property   BSTR            CompanyAndFullName = {read = get_CompanyAndFullName};
  __property   BSTR            CompanyLastFirstNoSpace = {read = get_CompanyLastFirstNoSpace};
  __property   BSTR            CompanyLastFirstSpaceOnly = {read = get_CompanyLastFirstSpaceOnly};
  __property   BSTR            CompanyMainTelephoneNumber = {read = get_CompanyMainTelephoneNumber, write = set_CompanyMainTelephoneNumber};
  __property   BSTR            CompanyName = {read = get_CompanyName, write = set_CompanyName};
  __property   BSTR            ComputerNetworkName = {read = get_ComputerNetworkName, write = set_ComputerNetworkName};
  __property   BSTR            CustomerID = {read = get_CustomerID, write = set_CustomerID};
  __property   BSTR            Department = {read = get_Department, write = set_Department};
  __property   BSTR            Email1Address = {read = get_Email1Address, write = set_Email1Address};
  __property   BSTR            Email1AddressType = {read = get_Email1AddressType, write = set_Email1AddressType};
  __property   BSTR            Email1DisplayName = {read = get_Email1DisplayName, write = set_Email1DisplayName};
  __property   BSTR            Email1EntryID = {read = get_Email1EntryID};
  __property   BSTR            Email2Address = {read = get_Email2Address, write = set_Email2Address};
  __property   BSTR            Email2AddressType = {read = get_Email2AddressType, write = set_Email2AddressType};
  __property   BSTR            Email2DisplayName = {read = get_Email2DisplayName, write = set_Email2DisplayName};
  __property   BSTR            Email2EntryID = {read = get_Email2EntryID};
  __property   BSTR            Email3Address = {read = get_Email3Address, write = set_Email3Address};
  __property   BSTR            Email3AddressType = {read = get_Email3AddressType, write = set_Email3AddressType};
  __property   BSTR            Email3DisplayName = {read = get_Email3DisplayName, write = set_Email3DisplayName};
  __property   BSTR            Email3EntryID = {read = get_Email3EntryID};
  __property   BSTR            FileAs = {read = get_FileAs, write = set_FileAs};
  __property   BSTR            FirstName = {read = get_FirstName, write = set_FirstName};
  __property   BSTR            FTPSite = {read = get_FTPSite, write = set_FTPSite};
  __property   BSTR            FullName = {read = get_FullName, write = set_FullName};
  __property   BSTR            FullNameAndCompany = {read = get_FullNameAndCompany};
  __property   Outlook_xp::OlGender Gender = {read = get_Gender, write = set_Gender};
  __property   BSTR            GovernmentIDNumber = {read = get_GovernmentIDNumber, write = set_GovernmentIDNumber};
  __property   BSTR            Hobby = {read = get_Hobby, write = set_Hobby};
  __property   BSTR            Home2TelephoneNumber = {read = get_Home2TelephoneNumber, write = set_Home2TelephoneNumber};
  __property   BSTR            HomeAddress = {read = get_HomeAddress, write = set_HomeAddress};
  __property   BSTR            HomeAddressCity = {read = get_HomeAddressCity, write = set_HomeAddressCity};
  __property   BSTR            HomeAddressCountry = {read = get_HomeAddressCountry, write = set_HomeAddressCountry};
  __property   BSTR            HomeAddressPostalCode = {read = get_HomeAddressPostalCode, write = set_HomeAddressPostalCode};
  __property   BSTR            HomeAddressPostOfficeBox = {read = get_HomeAddressPostOfficeBox, write = set_HomeAddressPostOfficeBox};
  __property   BSTR            HomeAddressState = {read = get_HomeAddressState, write = set_HomeAddressState};
  __property   BSTR            HomeAddressStreet = {read = get_HomeAddressStreet, write = set_HomeAddressStreet};
  __property   BSTR            HomeFaxNumber = {read = get_HomeFaxNumber, write = set_HomeFaxNumber};
  __property   BSTR            HomeTelephoneNumber = {read = get_HomeTelephoneNumber, write = set_HomeTelephoneNumber};
  __property   BSTR            Initials = {read = get_Initials, write = set_Initials};
  __property   BSTR            InternetFreeBusyAddress = {read = get_InternetFreeBusyAddress, write = set_InternetFreeBusyAddress};
  __property   BSTR            ISDNNumber = {read = get_ISDNNumber, write = set_ISDNNumber};
  __property   BSTR            JobTitle = {read = get_JobTitle, write = set_JobTitle};
  __property   VARIANT_BOOL    Journal = {read = get_Journal, write = set_Journal};
  __property   BSTR            Language = {read = get_Language, write = set_Language};
  __property   BSTR            LastFirstAndSuffix = {read = get_LastFirstAndSuffix};
  __property   BSTR            LastFirstNoSpace = {read = get_LastFirstNoSpace};
  __property   BSTR            LastFirstNoSpaceCompany = {read = get_LastFirstNoSpaceCompany};
  __property   BSTR            LastFirstSpaceOnly = {read = get_LastFirstSpaceOnly};
  __property   BSTR            LastFirstSpaceOnlyCompany = {read = get_LastFirstSpaceOnlyCompany};
  __property   BSTR            LastName = {read = get_LastName, write = set_LastName};
  __property   BSTR            LastNameAndFirstName = {read = get_LastNameAndFirstName};
  __property   BSTR            MailingAddress = {read = get_MailingAddress, write = set_MailingAddress};
  __property   BSTR            MailingAddressCity = {read = get_MailingAddressCity, write = set_MailingAddressCity};
  __property   BSTR            MailingAddressCountry = {read = get_MailingAddressCountry, write = set_MailingAddressCountry};
  __property   BSTR            MailingAddressPostalCode = {read = get_MailingAddressPostalCode, write = set_MailingAddressPostalCode};
  __property   BSTR            MailingAddressPostOfficeBox = {read = get_MailingAddressPostOfficeBox, write = set_MailingAddressPostOfficeBox};
  __property   BSTR            MailingAddressState = {read = get_MailingAddressState, write = set_MailingAddressState};
  __property   BSTR            MailingAddressStreet = {read = get_MailingAddressStreet, write = set_MailingAddressStreet};
  __property   BSTR            ManagerName = {read = get_ManagerName, write = set_ManagerName};
  __property   BSTR            MiddleName = {read = get_MiddleName, write = set_MiddleName};
  __property   BSTR            MobileTelephoneNumber = {read = get_MobileTelephoneNumber, write = set_MobileTelephoneNumber};
  __property   BSTR            NetMeetingAlias = {read = get_NetMeetingAlias, write = set_NetMeetingAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   BSTR            NickName = {read = get_NickName, write = set_NickName};
  __property   BSTR            OfficeLocation = {read = get_OfficeLocation, write = set_OfficeLocation};
  __property   BSTR            OrganizationalIDNumber = {read = get_OrganizationalIDNumber, write = set_OrganizationalIDNumber};
  __property   BSTR            OtherAddress = {read = get_OtherAddress, write = set_OtherAddress};
  __property   BSTR            OtherAddressCity = {read = get_OtherAddressCity, write = set_OtherAddressCity};
  __property   BSTR            OtherAddressCountry = {read = get_OtherAddressCountry, write = set_OtherAddressCountry};
  __property   BSTR            OtherAddressPostalCode = {read = get_OtherAddressPostalCode, write = set_OtherAddressPostalCode};
  __property   BSTR            OtherAddressPostOfficeBox = {read = get_OtherAddressPostOfficeBox, write = set_OtherAddressPostOfficeBox};
  __property   BSTR            OtherAddressState = {read = get_OtherAddressState, write = set_OtherAddressState};
  __property   BSTR            OtherAddressStreet = {read = get_OtherAddressStreet, write = set_OtherAddressStreet};
  __property   BSTR            OtherFaxNumber = {read = get_OtherFaxNumber, write = set_OtherFaxNumber};
  __property   BSTR            OtherTelephoneNumber = {read = get_OtherTelephoneNumber, write = set_OtherTelephoneNumber};
  __property   BSTR            PagerNumber = {read = get_PagerNumber, write = set_PagerNumber};
  __property   BSTR            PersonalHomePage = {read = get_PersonalHomePage, write = set_PersonalHomePage};
  __property   BSTR            PrimaryTelephoneNumber = {read = get_PrimaryTelephoneNumber, write = set_PrimaryTelephoneNumber};
  __property   BSTR            Profession = {read = get_Profession, write = set_Profession};
  __property   BSTR            RadioTelephoneNumber = {read = get_RadioTelephoneNumber, write = set_RadioTelephoneNumber};
  __property   BSTR            ReferredBy = {read = get_ReferredBy, write = set_ReferredBy};
  __property   Outlook_xp::OlMailingAddress SelectedMailingAddress = {read = get_SelectedMailingAddress, write = set_SelectedMailingAddress};
  __property   BSTR            Spouse = {read = get_Spouse, write = set_Spouse};
  __property   BSTR            Suffix = {read = get_Suffix, write = set_Suffix};
  __property   BSTR            TelexNumber = {read = get_TelexNumber, write = set_TelexNumber};
  __property   BSTR            Title = {read = get_Title, write = set_Title};
  __property   BSTR            TTYTDDTelephoneNumber = {read = get_TTYTDDTelephoneNumber, write = set_TTYTDDTelephoneNumber};
  __property   BSTR            User1 = {read = get_User1, write = set_User1};
  __property   BSTR            User2 = {read = get_User2, write = set_User2};
  __property   BSTR            User3 = {read = get_User3, write = set_User3};
  __property   BSTR            User4 = {read = get_User4, write = set_User4};
  __property   BSTR            UserCertificate = {read = get_UserCertificate, write = set_UserCertificate};
  __property   BSTR            WebPage = {read = get_WebPage, write = set_WebPage};
  __property   BSTR            YomiCompanyName = {read = get_YomiCompanyName, write = set_YomiCompanyName};
  __property   BSTR            YomiFirstName = {read = get_YomiFirstName, write = set_YomiFirstName};
  __property   BSTR            YomiLastName = {read = get_YomiLastName, write = set_YomiLastName};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   BSTR            LastFirstNoSpaceAndSuffix = {read = get_LastFirstNoSpaceAndSuffix};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   BSTR            IMAddress = {read = get_IMAddress, write = set_IMAddress};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_ContactItemT<_ContactItem> TCOM_ContactItem;

// *********************************************************************//
// DispIntf:  _ContactItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063021-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ContactItemDispT : public TAutoDriver<_ContactItem>
{
public:
  _ContactItemDispT(){}

  _ContactItemDispT(_ContactItem *pintf)
  {
    TAutoDriver<_ContactItem>::Bind(pintf, false);
  }

  _ContactItemDispT(_ContactItemPtr pintf)
  {
    TAutoDriver<_ContactItem>::Bind(pintf, true);
  }

  _ContactItemDispT& operator=(_ContactItem *pintf)
  {
    TAutoDriver<_ContactItem>::Bind(pintf, false);
    return *this;
  }

  _ContactItemDispT& operator=(_ContactItemPtr pintf)
  {
    TAutoDriver<_ContactItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ContactItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ContactItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Account(BSTR* Account/*[out,retval]*/);
  BSTR            __fastcall get_Account(void);
  HRESULT         __fastcall set_Account(BSTR Account/*[in]*/);
  HRESULT         __fastcall get_Anniversary(DATE* Anniversary/*[out,retval]*/);
  DATE            __fastcall get_Anniversary(void);
  HRESULT         __fastcall set_Anniversary(DATE Anniversary/*[in]*/);
  HRESULT         __fastcall get_AssistantName(BSTR* AssistantName/*[out,retval]*/);
  BSTR            __fastcall get_AssistantName(void);
  HRESULT         __fastcall set_AssistantName(BSTR AssistantName/*[in]*/);
  HRESULT         __fastcall get_AssistantTelephoneNumber(BSTR* AssistantTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_AssistantTelephoneNumber(void);
  HRESULT         __fastcall set_AssistantTelephoneNumber(BSTR AssistantTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Birthday(DATE* Birthday/*[out,retval]*/);
  DATE            __fastcall get_Birthday(void);
  HRESULT         __fastcall set_Birthday(DATE Birthday/*[in]*/);
  HRESULT         __fastcall get_Business2TelephoneNumber(BSTR* Business2TelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_Business2TelephoneNumber(void);
  HRESULT         __fastcall set_Business2TelephoneNumber(BSTR Business2TelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_BusinessAddress(BSTR* BusinessAddress/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddress(void);
  HRESULT         __fastcall set_BusinessAddress(BSTR BusinessAddress/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressCity(BSTR* BusinessAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressCity(void);
  HRESULT         __fastcall set_BusinessAddressCity(BSTR BusinessAddressCity/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressCountry(BSTR* BusinessAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressCountry(void);
  HRESULT         __fastcall set_BusinessAddressCountry(BSTR BusinessAddressCountry/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressPostalCode(BSTR* BusinessAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressPostalCode(void);
  HRESULT         __fastcall set_BusinessAddressPostalCode(BSTR BusinessAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressPostOfficeBox(BSTR* BusinessAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressPostOfficeBox(void);
  HRESULT         __fastcall set_BusinessAddressPostOfficeBox(BSTR BusinessAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressState(BSTR* BusinessAddressState/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressState(void);
  HRESULT         __fastcall set_BusinessAddressState(BSTR BusinessAddressState/*[in]*/);
  HRESULT         __fastcall get_BusinessAddressStreet(BSTR* BusinessAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_BusinessAddressStreet(void);
  HRESULT         __fastcall set_BusinessAddressStreet(BSTR BusinessAddressStreet/*[in]*/);
  HRESULT         __fastcall get_BusinessFaxNumber(BSTR* BusinessFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_BusinessFaxNumber(void);
  HRESULT         __fastcall set_BusinessFaxNumber(BSTR BusinessFaxNumber/*[in]*/);
  HRESULT         __fastcall get_BusinessHomePage(BSTR* BusinessHomePage/*[out,retval]*/);
  BSTR            __fastcall get_BusinessHomePage(void);
  HRESULT         __fastcall set_BusinessHomePage(BSTR BusinessHomePage/*[in]*/);
  HRESULT         __fastcall get_BusinessTelephoneNumber(BSTR* BusinessTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_BusinessTelephoneNumber(void);
  HRESULT         __fastcall set_BusinessTelephoneNumber(BSTR BusinessTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CallbackTelephoneNumber(BSTR* CallbackTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CallbackTelephoneNumber(void);
  HRESULT         __fastcall set_CallbackTelephoneNumber(BSTR CallbackTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CarTelephoneNumber(BSTR* CarTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CarTelephoneNumber(void);
  HRESULT         __fastcall set_CarTelephoneNumber(BSTR CarTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Children(BSTR* Children/*[out,retval]*/);
  BSTR            __fastcall get_Children(void);
  HRESULT         __fastcall set_Children(BSTR Children/*[in]*/);
  HRESULT         __fastcall get_CompanyAndFullName(BSTR* CompanyAndFullName/*[out,retval]*/);
  BSTR            __fastcall get_CompanyAndFullName(void);
  HRESULT         __fastcall get_CompanyLastFirstNoSpace(BSTR* CompanyLastFirstNoSpace/*[out,retval]*/);
  BSTR            __fastcall get_CompanyLastFirstNoSpace(void);
  HRESULT         __fastcall get_CompanyLastFirstSpaceOnly(BSTR* CompanyLastFirstSpaceOnly/*[out,retval]*/);
  BSTR            __fastcall get_CompanyLastFirstSpaceOnly(void);
  HRESULT         __fastcall get_CompanyMainTelephoneNumber(BSTR* CompanyMainTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_CompanyMainTelephoneNumber(void);
  HRESULT         __fastcall set_CompanyMainTelephoneNumber(BSTR CompanyMainTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_CompanyName(BSTR* CompanyName/*[out,retval]*/);
  BSTR            __fastcall get_CompanyName(void);
  HRESULT         __fastcall set_CompanyName(BSTR CompanyName/*[in]*/);
  HRESULT         __fastcall get_ComputerNetworkName(BSTR* ComputerNetworkName/*[out,retval]*/);
  BSTR            __fastcall get_ComputerNetworkName(void);
  HRESULT         __fastcall set_ComputerNetworkName(BSTR ComputerNetworkName/*[in]*/);
  HRESULT         __fastcall get_CustomerID(BSTR* CustomerID/*[out,retval]*/);
  BSTR            __fastcall get_CustomerID(void);
  HRESULT         __fastcall set_CustomerID(BSTR CustomerID/*[in]*/);
  HRESULT         __fastcall get_Department(BSTR* Department/*[out,retval]*/);
  BSTR            __fastcall get_Department(void);
  HRESULT         __fastcall set_Department(BSTR Department/*[in]*/);
  HRESULT         __fastcall get_Email1Address(BSTR* Email1Address/*[out,retval]*/);
  BSTR            __fastcall get_Email1Address(void);
  HRESULT         __fastcall set_Email1Address(BSTR Email1Address/*[in]*/);
  HRESULT         __fastcall get_Email1AddressType(BSTR* Email1AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email1AddressType(void);
  HRESULT         __fastcall set_Email1AddressType(BSTR Email1AddressType/*[in]*/);
  HRESULT         __fastcall get_Email1DisplayName(BSTR* Email1DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email1DisplayName(void);
  HRESULT         __fastcall get_Email1EntryID(BSTR* Email1EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email1EntryID(void);
  HRESULT         __fastcall get_Email2Address(BSTR* Email2Address/*[out,retval]*/);
  BSTR            __fastcall get_Email2Address(void);
  HRESULT         __fastcall set_Email2Address(BSTR Email2Address/*[in]*/);
  HRESULT         __fastcall get_Email2AddressType(BSTR* Email2AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email2AddressType(void);
  HRESULT         __fastcall set_Email2AddressType(BSTR Email2AddressType/*[in]*/);
  HRESULT         __fastcall get_Email2DisplayName(BSTR* Email2DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email2DisplayName(void);
  HRESULT         __fastcall get_Email2EntryID(BSTR* Email2EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email2EntryID(void);
  HRESULT         __fastcall get_Email3Address(BSTR* Email3Address/*[out,retval]*/);
  BSTR            __fastcall get_Email3Address(void);
  HRESULT         __fastcall set_Email3Address(BSTR Email3Address/*[in]*/);
  HRESULT         __fastcall get_Email3AddressType(BSTR* Email3AddressType/*[out,retval]*/);
  BSTR            __fastcall get_Email3AddressType(void);
  HRESULT         __fastcall set_Email3AddressType(BSTR Email3AddressType/*[in]*/);
  HRESULT         __fastcall get_Email3DisplayName(BSTR* Email3DisplayName/*[out,retval]*/);
  BSTR            __fastcall get_Email3DisplayName(void);
  HRESULT         __fastcall get_Email3EntryID(BSTR* Email3EntryID/*[out,retval]*/);
  BSTR            __fastcall get_Email3EntryID(void);
  HRESULT         __fastcall get_FileAs(BSTR* FileAs/*[out,retval]*/);
  BSTR            __fastcall get_FileAs(void);
  HRESULT         __fastcall set_FileAs(BSTR FileAs/*[in]*/);
  HRESULT         __fastcall get_FirstName(BSTR* FirstName/*[out,retval]*/);
  BSTR            __fastcall get_FirstName(void);
  HRESULT         __fastcall set_FirstName(BSTR FirstName/*[in]*/);
  HRESULT         __fastcall get_FTPSite(BSTR* FTPSite/*[out,retval]*/);
  BSTR            __fastcall get_FTPSite(void);
  HRESULT         __fastcall set_FTPSite(BSTR FTPSite/*[in]*/);
  HRESULT         __fastcall get_FullName(BSTR* FullName/*[out,retval]*/);
  BSTR            __fastcall get_FullName(void);
  HRESULT         __fastcall set_FullName(BSTR FullName/*[in]*/);
  HRESULT         __fastcall get_FullNameAndCompany(BSTR* FullNameAndCompany/*[out,retval]*/);
  BSTR            __fastcall get_FullNameAndCompany(void);
  HRESULT         __fastcall get_Gender(Outlook_xp::OlGender* Gender/*[out,retval]*/);
  Outlook_xp::OlGender __fastcall get_Gender(void);
  HRESULT         __fastcall set_Gender(Outlook_xp::OlGender Gender/*[in]*/);
  HRESULT         __fastcall get_GovernmentIDNumber(BSTR* GovernmentIDNumber/*[out,retval]*/);
  BSTR            __fastcall get_GovernmentIDNumber(void);
  HRESULT         __fastcall set_GovernmentIDNumber(BSTR GovernmentIDNumber/*[in]*/);
  HRESULT         __fastcall get_Hobby(BSTR* Hobby/*[out,retval]*/);
  BSTR            __fastcall get_Hobby(void);
  HRESULT         __fastcall set_Hobby(BSTR Hobby/*[in]*/);
  HRESULT         __fastcall get_Home2TelephoneNumber(BSTR* Home2TelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_Home2TelephoneNumber(void);
  HRESULT         __fastcall set_Home2TelephoneNumber(BSTR Home2TelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_HomeAddress(BSTR* HomeAddress/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddress(void);
  HRESULT         __fastcall set_HomeAddress(BSTR HomeAddress/*[in]*/);
  HRESULT         __fastcall get_HomeAddressCity(BSTR* HomeAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressCity(void);
  HRESULT         __fastcall set_HomeAddressCity(BSTR HomeAddressCity/*[in]*/);
  HRESULT         __fastcall get_HomeAddressCountry(BSTR* HomeAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressCountry(void);
  HRESULT         __fastcall set_HomeAddressCountry(BSTR HomeAddressCountry/*[in]*/);
  HRESULT         __fastcall get_HomeAddressPostalCode(BSTR* HomeAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressPostalCode(void);
  HRESULT         __fastcall set_HomeAddressPostalCode(BSTR HomeAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_HomeAddressPostOfficeBox(BSTR* HomeAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressPostOfficeBox(void);
  HRESULT         __fastcall set_HomeAddressPostOfficeBox(BSTR HomeAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_HomeAddressState(BSTR* HomeAddressState/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressState(void);
  HRESULT         __fastcall set_HomeAddressState(BSTR HomeAddressState/*[in]*/);
  HRESULT         __fastcall get_HomeAddressStreet(BSTR* HomeAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_HomeAddressStreet(void);
  HRESULT         __fastcall set_HomeAddressStreet(BSTR HomeAddressStreet/*[in]*/);
  HRESULT         __fastcall get_HomeFaxNumber(BSTR* HomeFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_HomeFaxNumber(void);
  HRESULT         __fastcall set_HomeFaxNumber(BSTR HomeFaxNumber/*[in]*/);
  HRESULT         __fastcall get_HomeTelephoneNumber(BSTR* HomeTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_HomeTelephoneNumber(void);
  HRESULT         __fastcall set_HomeTelephoneNumber(BSTR HomeTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Initials(BSTR* Initials/*[out,retval]*/);
  BSTR            __fastcall get_Initials(void);
  HRESULT         __fastcall set_Initials(BSTR Initials/*[in]*/);
  HRESULT         __fastcall get_InternetFreeBusyAddress(BSTR* InternetFreeBusyAddress/*[out,retval]*/);
  BSTR            __fastcall get_InternetFreeBusyAddress(void);
  HRESULT         __fastcall set_InternetFreeBusyAddress(BSTR InternetFreeBusyAddress/*[in]*/);
  HRESULT         __fastcall get_ISDNNumber(BSTR* ISDNNumber/*[out,retval]*/);
  BSTR            __fastcall get_ISDNNumber(void);
  HRESULT         __fastcall set_ISDNNumber(BSTR ISDNNumber/*[in]*/);
  HRESULT         __fastcall get_JobTitle(BSTR* JobTitle/*[out,retval]*/);
  BSTR            __fastcall get_JobTitle(void);
  HRESULT         __fastcall set_JobTitle(BSTR JobTitle/*[in]*/);
  HRESULT         __fastcall get_Journal(VARIANT_BOOL* Journal/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Journal(void);
  HRESULT         __fastcall set_Journal(VARIANT_BOOL Journal/*[in]*/);
  HRESULT         __fastcall get_Language(BSTR* Language/*[out,retval]*/);
  BSTR            __fastcall get_Language(void);
  HRESULT         __fastcall set_Language(BSTR Language/*[in]*/);
  HRESULT         __fastcall get_LastFirstAndSuffix(BSTR* LastFirstAndSuffix/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstAndSuffix(void);
  HRESULT         __fastcall get_LastFirstNoSpace(BSTR* LastFirstNoSpace/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpace(void);
  HRESULT         __fastcall get_LastFirstNoSpaceCompany(BSTR* LastFirstNoSpaceCompany/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpaceCompany(void);
  HRESULT         __fastcall get_LastFirstSpaceOnly(BSTR* LastFirstSpaceOnly/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstSpaceOnly(void);
  HRESULT         __fastcall get_LastFirstSpaceOnlyCompany(BSTR* LastFirstSpaceOnlyCompany/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstSpaceOnlyCompany(void);
  HRESULT         __fastcall get_LastName(BSTR* LastName/*[out,retval]*/);
  BSTR            __fastcall get_LastName(void);
  HRESULT         __fastcall set_LastName(BSTR LastName/*[in]*/);
  HRESULT         __fastcall get_LastNameAndFirstName(BSTR* LastNameAndFirstName/*[out,retval]*/);
  BSTR            __fastcall get_LastNameAndFirstName(void);
  HRESULT         __fastcall get_MailingAddress(BSTR* MailingAddress/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddress(void);
  HRESULT         __fastcall set_MailingAddress(BSTR MailingAddress/*[in]*/);
  HRESULT         __fastcall get_MailingAddressCity(BSTR* MailingAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressCity(void);
  HRESULT         __fastcall set_MailingAddressCity(BSTR MailingAddressCity/*[in]*/);
  HRESULT         __fastcall get_MailingAddressCountry(BSTR* MailingAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressCountry(void);
  HRESULT         __fastcall set_MailingAddressCountry(BSTR MailingAddressCountry/*[in]*/);
  HRESULT         __fastcall get_MailingAddressPostalCode(BSTR* MailingAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressPostalCode(void);
  HRESULT         __fastcall set_MailingAddressPostalCode(BSTR MailingAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_MailingAddressPostOfficeBox(BSTR* MailingAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressPostOfficeBox(void);
  HRESULT         __fastcall set_MailingAddressPostOfficeBox(BSTR MailingAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_MailingAddressState(BSTR* MailingAddressState/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressState(void);
  HRESULT         __fastcall set_MailingAddressState(BSTR MailingAddressState/*[in]*/);
  HRESULT         __fastcall get_MailingAddressStreet(BSTR* MailingAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_MailingAddressStreet(void);
  HRESULT         __fastcall set_MailingAddressStreet(BSTR MailingAddressStreet/*[in]*/);
  HRESULT         __fastcall get_ManagerName(BSTR* ManagerName/*[out,retval]*/);
  BSTR            __fastcall get_ManagerName(void);
  HRESULT         __fastcall set_ManagerName(BSTR ManagerName/*[in]*/);
  HRESULT         __fastcall get_MiddleName(BSTR* MiddleName/*[out,retval]*/);
  BSTR            __fastcall get_MiddleName(void);
  HRESULT         __fastcall set_MiddleName(BSTR MiddleName/*[in]*/);
  HRESULT         __fastcall get_MobileTelephoneNumber(BSTR* MobileTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_MobileTelephoneNumber(void);
  HRESULT         __fastcall set_MobileTelephoneNumber(BSTR MobileTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_NetMeetingAlias(BSTR* NetMeetingAlias/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingAlias(void);
  HRESULT         __fastcall set_NetMeetingAlias(BSTR NetMeetingAlias/*[in]*/);
  HRESULT         __fastcall get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/);
  BSTR            __fastcall get_NetMeetingServer(void);
  HRESULT         __fastcall set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/);
  HRESULT         __fastcall get_NickName(BSTR* NickName/*[out,retval]*/);
  BSTR            __fastcall get_NickName(void);
  HRESULT         __fastcall set_NickName(BSTR NickName/*[in]*/);
  HRESULT         __fastcall get_OfficeLocation(BSTR* OfficeLocation/*[out,retval]*/);
  BSTR            __fastcall get_OfficeLocation(void);
  HRESULT         __fastcall set_OfficeLocation(BSTR OfficeLocation/*[in]*/);
  HRESULT         __fastcall get_OrganizationalIDNumber(BSTR* OrganizationalIDNumber/*[out,retval]*/);
  BSTR            __fastcall get_OrganizationalIDNumber(void);
  HRESULT         __fastcall set_OrganizationalIDNumber(BSTR OrganizationalIDNumber/*[in]*/);
  HRESULT         __fastcall get_OtherAddress(BSTR* OtherAddress/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddress(void);
  HRESULT         __fastcall set_OtherAddress(BSTR OtherAddress/*[in]*/);
  HRESULT         __fastcall get_OtherAddressCity(BSTR* OtherAddressCity/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressCity(void);
  HRESULT         __fastcall set_OtherAddressCity(BSTR OtherAddressCity/*[in]*/);
  HRESULT         __fastcall get_OtherAddressCountry(BSTR* OtherAddressCountry/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressCountry(void);
  HRESULT         __fastcall set_OtherAddressCountry(BSTR OtherAddressCountry/*[in]*/);
  HRESULT         __fastcall get_OtherAddressPostalCode(BSTR* OtherAddressPostalCode/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressPostalCode(void);
  HRESULT         __fastcall set_OtherAddressPostalCode(BSTR OtherAddressPostalCode/*[in]*/);
  HRESULT         __fastcall get_OtherAddressPostOfficeBox(BSTR* OtherAddressPostOfficeBox/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressPostOfficeBox(void);
  HRESULT         __fastcall set_OtherAddressPostOfficeBox(BSTR OtherAddressPostOfficeBox/*[in]*/);
  HRESULT         __fastcall get_OtherAddressState(BSTR* OtherAddressState/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressState(void);
  HRESULT         __fastcall set_OtherAddressState(BSTR OtherAddressState/*[in]*/);
  HRESULT         __fastcall get_OtherAddressStreet(BSTR* OtherAddressStreet/*[out,retval]*/);
  BSTR            __fastcall get_OtherAddressStreet(void);
  HRESULT         __fastcall set_OtherAddressStreet(BSTR OtherAddressStreet/*[in]*/);
  HRESULT         __fastcall get_OtherFaxNumber(BSTR* OtherFaxNumber/*[out,retval]*/);
  BSTR            __fastcall get_OtherFaxNumber(void);
  HRESULT         __fastcall set_OtherFaxNumber(BSTR OtherFaxNumber/*[in]*/);
  HRESULT         __fastcall get_OtherTelephoneNumber(BSTR* OtherTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_OtherTelephoneNumber(void);
  HRESULT         __fastcall set_OtherTelephoneNumber(BSTR OtherTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_PagerNumber(BSTR* PagerNumber/*[out,retval]*/);
  BSTR            __fastcall get_PagerNumber(void);
  HRESULT         __fastcall set_PagerNumber(BSTR PagerNumber/*[in]*/);
  HRESULT         __fastcall get_PersonalHomePage(BSTR* PersonalHomePage/*[out,retval]*/);
  BSTR            __fastcall get_PersonalHomePage(void);
  HRESULT         __fastcall set_PersonalHomePage(BSTR PersonalHomePage/*[in]*/);
  HRESULT         __fastcall get_PrimaryTelephoneNumber(BSTR* PrimaryTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_PrimaryTelephoneNumber(void);
  HRESULT         __fastcall set_PrimaryTelephoneNumber(BSTR PrimaryTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_Profession(BSTR* Profession/*[out,retval]*/);
  BSTR            __fastcall get_Profession(void);
  HRESULT         __fastcall set_Profession(BSTR Profession/*[in]*/);
  HRESULT         __fastcall get_RadioTelephoneNumber(BSTR* RadioTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_RadioTelephoneNumber(void);
  HRESULT         __fastcall set_RadioTelephoneNumber(BSTR RadioTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_ReferredBy(BSTR* ReferredBy/*[out,retval]*/);
  BSTR            __fastcall get_ReferredBy(void);
  HRESULT         __fastcall set_ReferredBy(BSTR ReferredBy/*[in]*/);
  HRESULT         __fastcall get_SelectedMailingAddress(Outlook_xp::OlMailingAddress* SelectedMailingAddress/*[out,retval]*/);
  Outlook_xp::OlMailingAddress __fastcall get_SelectedMailingAddress(void);
  HRESULT         __fastcall set_SelectedMailingAddress(Outlook_xp::OlMailingAddress SelectedMailingAddress/*[in]*/);
  HRESULT         __fastcall get_Spouse(BSTR* Spouse/*[out,retval]*/);
  BSTR            __fastcall get_Spouse(void);
  HRESULT         __fastcall set_Spouse(BSTR Spouse/*[in]*/);
  HRESULT         __fastcall get_Suffix(BSTR* Suffix/*[out,retval]*/);
  BSTR            __fastcall get_Suffix(void);
  HRESULT         __fastcall set_Suffix(BSTR Suffix/*[in]*/);
  HRESULT         __fastcall get_TelexNumber(BSTR* TelexNumber/*[out,retval]*/);
  BSTR            __fastcall get_TelexNumber(void);
  HRESULT         __fastcall set_TelexNumber(BSTR TelexNumber/*[in]*/);
  HRESULT         __fastcall get_Title(BSTR* Title/*[out,retval]*/);
  BSTR            __fastcall get_Title(void);
  HRESULT         __fastcall set_Title(BSTR Title/*[in]*/);
  HRESULT         __fastcall get_TTYTDDTelephoneNumber(BSTR* TTYTDDTelephoneNumber/*[out,retval]*/);
  BSTR            __fastcall get_TTYTDDTelephoneNumber(void);
  HRESULT         __fastcall set_TTYTDDTelephoneNumber(BSTR TTYTDDTelephoneNumber/*[in]*/);
  HRESULT         __fastcall get_User1(BSTR* User1/*[out,retval]*/);
  BSTR            __fastcall get_User1(void);
  HRESULT         __fastcall set_User1(BSTR User1/*[in]*/);
  HRESULT         __fastcall get_User2(BSTR* User2/*[out,retval]*/);
  BSTR            __fastcall get_User2(void);
  HRESULT         __fastcall set_User2(BSTR User2/*[in]*/);
  HRESULT         __fastcall get_User3(BSTR* User3/*[out,retval]*/);
  BSTR            __fastcall get_User3(void);
  HRESULT         __fastcall set_User3(BSTR User3/*[in]*/);
  HRESULT         __fastcall get_User4(BSTR* User4/*[out,retval]*/);
  BSTR            __fastcall get_User4(void);
  HRESULT         __fastcall set_User4(BSTR User4/*[in]*/);
  HRESULT         __fastcall get_UserCertificate(BSTR* UserCertificate/*[out,retval]*/);
  BSTR            __fastcall get_UserCertificate(void);
  HRESULT         __fastcall set_UserCertificate(BSTR UserCertificate/*[in]*/);
  HRESULT         __fastcall get_WebPage(BSTR* WebPage/*[out,retval]*/);
  BSTR            __fastcall get_WebPage(void);
  HRESULT         __fastcall set_WebPage(BSTR WebPage/*[in]*/);
  HRESULT         __fastcall get_YomiCompanyName(BSTR* YomiCompanyName/*[out,retval]*/);
  BSTR            __fastcall get_YomiCompanyName(void);
  HRESULT         __fastcall set_YomiCompanyName(BSTR YomiCompanyName/*[in]*/);
  HRESULT         __fastcall get_YomiFirstName(BSTR* YomiFirstName/*[out,retval]*/);
  BSTR            __fastcall get_YomiFirstName(void);
  HRESULT         __fastcall set_YomiFirstName(BSTR YomiFirstName/*[in]*/);
  HRESULT         __fastcall get_YomiLastName(BSTR* YomiLastName/*[out,retval]*/);
  BSTR            __fastcall get_YomiLastName(void);
  HRESULT         __fastcall set_YomiLastName(BSTR YomiLastName/*[in]*/);
  HRESULT         __fastcall ForwardAsVcard(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ForwardAsVcard(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_LastFirstNoSpaceAndSuffix(BSTR* LastFirstNoSpaceAndSuffix/*[out,retval]*/);
  BSTR            __fastcall get_LastFirstNoSpaceAndSuffix(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_IMAddress(BSTR* IMAddress/*[out,retval]*/);
  BSTR            __fastcall get_IMAddress(void);
  HRESULT         __fastcall set_IMAddress(BSTR IMAddress/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall set_Email1DisplayName(BSTR Email1DisplayName/*[in]*/);
  HRESULT         __fastcall set_Email2DisplayName(BSTR Email2DisplayName/*[in]*/);
  HRESULT         __fastcall set_Email3DisplayName(BSTR Email3DisplayName/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            Account = {read = get_Account, write = set_Account};
  __property   DATE            Anniversary = {read = get_Anniversary, write = set_Anniversary};
  __property   BSTR            AssistantName = {read = get_AssistantName, write = set_AssistantName};
  __property   BSTR            AssistantTelephoneNumber = {read = get_AssistantTelephoneNumber, write = set_AssistantTelephoneNumber};
  __property   DATE            Birthday = {read = get_Birthday, write = set_Birthday};
  __property   BSTR            Business2TelephoneNumber = {read = get_Business2TelephoneNumber, write = set_Business2TelephoneNumber};
  __property   BSTR            BusinessAddress = {read = get_BusinessAddress, write = set_BusinessAddress};
  __property   BSTR            BusinessAddressCity = {read = get_BusinessAddressCity, write = set_BusinessAddressCity};
  __property   BSTR            BusinessAddressCountry = {read = get_BusinessAddressCountry, write = set_BusinessAddressCountry};
  __property   BSTR            BusinessAddressPostalCode = {read = get_BusinessAddressPostalCode, write = set_BusinessAddressPostalCode};
  __property   BSTR            BusinessAddressPostOfficeBox = {read = get_BusinessAddressPostOfficeBox, write = set_BusinessAddressPostOfficeBox};
  __property   BSTR            BusinessAddressState = {read = get_BusinessAddressState, write = set_BusinessAddressState};
  __property   BSTR            BusinessAddressStreet = {read = get_BusinessAddressStreet, write = set_BusinessAddressStreet};
  __property   BSTR            BusinessFaxNumber = {read = get_BusinessFaxNumber, write = set_BusinessFaxNumber};
  __property   BSTR            BusinessHomePage = {read = get_BusinessHomePage, write = set_BusinessHomePage};
  __property   BSTR            BusinessTelephoneNumber = {read = get_BusinessTelephoneNumber, write = set_BusinessTelephoneNumber};
  __property   BSTR            CallbackTelephoneNumber = {read = get_CallbackTelephoneNumber, write = set_CallbackTelephoneNumber};
  __property   BSTR            CarTelephoneNumber = {read = get_CarTelephoneNumber, write = set_CarTelephoneNumber};
  __property   BSTR            Children = {read = get_Children, write = set_Children};
  __property   BSTR            CompanyAndFullName = {read = get_CompanyAndFullName};
  __property   BSTR            CompanyLastFirstNoSpace = {read = get_CompanyLastFirstNoSpace};
  __property   BSTR            CompanyLastFirstSpaceOnly = {read = get_CompanyLastFirstSpaceOnly};
  __property   BSTR            CompanyMainTelephoneNumber = {read = get_CompanyMainTelephoneNumber, write = set_CompanyMainTelephoneNumber};
  __property   BSTR            CompanyName = {read = get_CompanyName, write = set_CompanyName};
  __property   BSTR            ComputerNetworkName = {read = get_ComputerNetworkName, write = set_ComputerNetworkName};
  __property   BSTR            CustomerID = {read = get_CustomerID, write = set_CustomerID};
  __property   BSTR            Department = {read = get_Department, write = set_Department};
  __property   BSTR            Email1Address = {read = get_Email1Address, write = set_Email1Address};
  __property   BSTR            Email1AddressType = {read = get_Email1AddressType, write = set_Email1AddressType};
  __property   BSTR            Email1DisplayName = {read = get_Email1DisplayName, write = set_Email1DisplayName};
  __property   BSTR            Email1EntryID = {read = get_Email1EntryID};
  __property   BSTR            Email2Address = {read = get_Email2Address, write = set_Email2Address};
  __property   BSTR            Email2AddressType = {read = get_Email2AddressType, write = set_Email2AddressType};
  __property   BSTR            Email2DisplayName = {read = get_Email2DisplayName, write = set_Email2DisplayName};
  __property   BSTR            Email2EntryID = {read = get_Email2EntryID};
  __property   BSTR            Email3Address = {read = get_Email3Address, write = set_Email3Address};
  __property   BSTR            Email3AddressType = {read = get_Email3AddressType, write = set_Email3AddressType};
  __property   BSTR            Email3DisplayName = {read = get_Email3DisplayName, write = set_Email3DisplayName};
  __property   BSTR            Email3EntryID = {read = get_Email3EntryID};
  __property   BSTR            FileAs = {read = get_FileAs, write = set_FileAs};
  __property   BSTR            FirstName = {read = get_FirstName, write = set_FirstName};
  __property   BSTR            FTPSite = {read = get_FTPSite, write = set_FTPSite};
  __property   BSTR            FullName = {read = get_FullName, write = set_FullName};
  __property   BSTR            FullNameAndCompany = {read = get_FullNameAndCompany};
  __property   Outlook_xp::OlGender Gender = {read = get_Gender, write = set_Gender};
  __property   BSTR            GovernmentIDNumber = {read = get_GovernmentIDNumber, write = set_GovernmentIDNumber};
  __property   BSTR            Hobby = {read = get_Hobby, write = set_Hobby};
  __property   BSTR            Home2TelephoneNumber = {read = get_Home2TelephoneNumber, write = set_Home2TelephoneNumber};
  __property   BSTR            HomeAddress = {read = get_HomeAddress, write = set_HomeAddress};
  __property   BSTR            HomeAddressCity = {read = get_HomeAddressCity, write = set_HomeAddressCity};
  __property   BSTR            HomeAddressCountry = {read = get_HomeAddressCountry, write = set_HomeAddressCountry};
  __property   BSTR            HomeAddressPostalCode = {read = get_HomeAddressPostalCode, write = set_HomeAddressPostalCode};
  __property   BSTR            HomeAddressPostOfficeBox = {read = get_HomeAddressPostOfficeBox, write = set_HomeAddressPostOfficeBox};
  __property   BSTR            HomeAddressState = {read = get_HomeAddressState, write = set_HomeAddressState};
  __property   BSTR            HomeAddressStreet = {read = get_HomeAddressStreet, write = set_HomeAddressStreet};
  __property   BSTR            HomeFaxNumber = {read = get_HomeFaxNumber, write = set_HomeFaxNumber};
  __property   BSTR            HomeTelephoneNumber = {read = get_HomeTelephoneNumber, write = set_HomeTelephoneNumber};
  __property   BSTR            Initials = {read = get_Initials, write = set_Initials};
  __property   BSTR            InternetFreeBusyAddress = {read = get_InternetFreeBusyAddress, write = set_InternetFreeBusyAddress};
  __property   BSTR            ISDNNumber = {read = get_ISDNNumber, write = set_ISDNNumber};
  __property   BSTR            JobTitle = {read = get_JobTitle, write = set_JobTitle};
  __property   VARIANT_BOOL    Journal = {read = get_Journal, write = set_Journal};
  __property   BSTR            Language = {read = get_Language, write = set_Language};
  __property   BSTR            LastFirstAndSuffix = {read = get_LastFirstAndSuffix};
  __property   BSTR            LastFirstNoSpace = {read = get_LastFirstNoSpace};
  __property   BSTR            LastFirstNoSpaceCompany = {read = get_LastFirstNoSpaceCompany};
  __property   BSTR            LastFirstSpaceOnly = {read = get_LastFirstSpaceOnly};
  __property   BSTR            LastFirstSpaceOnlyCompany = {read = get_LastFirstSpaceOnlyCompany};
  __property   BSTR            LastName = {read = get_LastName, write = set_LastName};
  __property   BSTR            LastNameAndFirstName = {read = get_LastNameAndFirstName};
  __property   BSTR            MailingAddress = {read = get_MailingAddress, write = set_MailingAddress};
  __property   BSTR            MailingAddressCity = {read = get_MailingAddressCity, write = set_MailingAddressCity};
  __property   BSTR            MailingAddressCountry = {read = get_MailingAddressCountry, write = set_MailingAddressCountry};
  __property   BSTR            MailingAddressPostalCode = {read = get_MailingAddressPostalCode, write = set_MailingAddressPostalCode};
  __property   BSTR            MailingAddressPostOfficeBox = {read = get_MailingAddressPostOfficeBox, write = set_MailingAddressPostOfficeBox};
  __property   BSTR            MailingAddressState = {read = get_MailingAddressState, write = set_MailingAddressState};
  __property   BSTR            MailingAddressStreet = {read = get_MailingAddressStreet, write = set_MailingAddressStreet};
  __property   BSTR            ManagerName = {read = get_ManagerName, write = set_ManagerName};
  __property   BSTR            MiddleName = {read = get_MiddleName, write = set_MiddleName};
  __property   BSTR            MobileTelephoneNumber = {read = get_MobileTelephoneNumber, write = set_MobileTelephoneNumber};
  __property   BSTR            NetMeetingAlias = {read = get_NetMeetingAlias, write = set_NetMeetingAlias};
  __property   BSTR            NetMeetingServer = {read = get_NetMeetingServer, write = set_NetMeetingServer};
  __property   BSTR            NickName = {read = get_NickName, write = set_NickName};
  __property   BSTR            OfficeLocation = {read = get_OfficeLocation, write = set_OfficeLocation};
  __property   BSTR            OrganizationalIDNumber = {read = get_OrganizationalIDNumber, write = set_OrganizationalIDNumber};
  __property   BSTR            OtherAddress = {read = get_OtherAddress, write = set_OtherAddress};
  __property   BSTR            OtherAddressCity = {read = get_OtherAddressCity, write = set_OtherAddressCity};
  __property   BSTR            OtherAddressCountry = {read = get_OtherAddressCountry, write = set_OtherAddressCountry};
  __property   BSTR            OtherAddressPostalCode = {read = get_OtherAddressPostalCode, write = set_OtherAddressPostalCode};
  __property   BSTR            OtherAddressPostOfficeBox = {read = get_OtherAddressPostOfficeBox, write = set_OtherAddressPostOfficeBox};
  __property   BSTR            OtherAddressState = {read = get_OtherAddressState, write = set_OtherAddressState};
  __property   BSTR            OtherAddressStreet = {read = get_OtherAddressStreet, write = set_OtherAddressStreet};
  __property   BSTR            OtherFaxNumber = {read = get_OtherFaxNumber, write = set_OtherFaxNumber};
  __property   BSTR            OtherTelephoneNumber = {read = get_OtherTelephoneNumber, write = set_OtherTelephoneNumber};
  __property   BSTR            PagerNumber = {read = get_PagerNumber, write = set_PagerNumber};
  __property   BSTR            PersonalHomePage = {read = get_PersonalHomePage, write = set_PersonalHomePage};
  __property   BSTR            PrimaryTelephoneNumber = {read = get_PrimaryTelephoneNumber, write = set_PrimaryTelephoneNumber};
  __property   BSTR            Profession = {read = get_Profession, write = set_Profession};
  __property   BSTR            RadioTelephoneNumber = {read = get_RadioTelephoneNumber, write = set_RadioTelephoneNumber};
  __property   BSTR            ReferredBy = {read = get_ReferredBy, write = set_ReferredBy};
  __property   Outlook_xp::OlMailingAddress SelectedMailingAddress = {read = get_SelectedMailingAddress, write = set_SelectedMailingAddress};
  __property   BSTR            Spouse = {read = get_Spouse, write = set_Spouse};
  __property   BSTR            Suffix = {read = get_Suffix, write = set_Suffix};
  __property   BSTR            TelexNumber = {read = get_TelexNumber, write = set_TelexNumber};
  __property   BSTR            Title = {read = get_Title, write = set_Title};
  __property   BSTR            TTYTDDTelephoneNumber = {read = get_TTYTDDTelephoneNumber, write = set_TTYTDDTelephoneNumber};
  __property   BSTR            User1 = {read = get_User1, write = set_User1};
  __property   BSTR            User2 = {read = get_User2, write = set_User2};
  __property   BSTR            User3 = {read = get_User3, write = set_User3};
  __property   BSTR            User4 = {read = get_User4, write = set_User4};
  __property   BSTR            UserCertificate = {read = get_UserCertificate, write = set_UserCertificate};
  __property   BSTR            WebPage = {read = get_WebPage, write = set_WebPage};
  __property   BSTR            YomiCompanyName = {read = get_YomiCompanyName, write = set_YomiCompanyName};
  __property   BSTR            YomiFirstName = {read = get_YomiFirstName, write = set_YomiFirstName};
  __property   BSTR            YomiLastName = {read = get_YomiLastName, write = set_YomiLastName};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   BSTR            LastFirstNoSpaceAndSuffix = {read = get_LastFirstNoSpaceAndSuffix};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   BSTR            IMAddress = {read = get_IMAddress, write = set_IMAddress};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _ContactItemDispT<_ContactItem> _ContactItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_DistListItem
// Interface: _DistListItem
// *********************************************************************//
template <class T /* _DistListItem */ >
class TCOM_DistListItemT : public TComInterface<_DistListItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_DistListItemT() {}
  TCOM_DistListItemT(_DistListItem *intf, bool addRef = false) : TComInterface<_DistListItem>(intf, addRef) {}
  TCOM_DistListItemT(const TCOM_DistListItemT& src) : TComInterface<_DistListItem>(src) {}
  TCOM_DistListItemT& operator=(const TCOM_DistListItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_DLName(BSTR* DLName/*[out,retval]*/);
  BSTR            __fastcall get_DLName(void);
  HRESULT         __fastcall set_DLName(BSTR DLName/*[in]*/);
  HRESULT         __fastcall get_MemberCount(long* MemberCount/*[out,retval]*/);
  long            __fastcall get_MemberCount(void);
  HRESULT         __fastcall get_CheckSum(long* CheckSum/*[out,retval]*/);
  long            __fastcall get_CheckSum(void);
  HRESULT         __fastcall get_Members(VARIANT* Members/*[out,retval]*/);
  VARIANT         __fastcall get_Members(void);
  HRESULT         __fastcall set_Members(VARIANT Members/*[in]*/);
  HRESULT         __fastcall get_OneOffMembers(VARIANT* OneOffMembers/*[out,retval]*/);
  VARIANT         __fastcall get_OneOffMembers(void);
  HRESULT         __fastcall set_OneOffMembers(VARIANT OneOffMembers/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall AddMembers(Outlook_xp::Recipients* Recipients/*[in]*/);
  HRESULT         __fastcall RemoveMembers(Outlook_xp::Recipients* Recipients/*[in]*/);
  HRESULT         __fastcall GetMember(long Index/*[in]*/, 
                                       Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall GetMember(long Index/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall AddMember(Outlook_xp::Recipient* Recipient/*[in]*/);
  HRESULT         __fastcall RemoveMember(Outlook_xp::Recipient* Recipient/*[in]*/);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            DLName = {read = get_DLName, write = set_DLName};
  __property   long            MemberCount = {read = get_MemberCount};
  __property   long            CheckSum = {read = get_CheckSum};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_DistListItemT<_DistListItem> TCOM_DistListItem;

// *********************************************************************//
// DispIntf:  _DistListItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063081-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DistListItemDispT : public TAutoDriver<_DistListItem>
{
public:
  _DistListItemDispT(){}

  _DistListItemDispT(_DistListItem *pintf)
  {
    TAutoDriver<_DistListItem>::Bind(pintf, false);
  }

  _DistListItemDispT(_DistListItemPtr pintf)
  {
    TAutoDriver<_DistListItem>::Bind(pintf, true);
  }

  _DistListItemDispT& operator=(_DistListItem *pintf)
  {
    TAutoDriver<_DistListItem>::Bind(pintf, false);
    return *this;
  }

  _DistListItemDispT& operator=(_DistListItemPtr pintf)
  {
    TAutoDriver<_DistListItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DistListItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DistListItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_DLName(BSTR* DLName/*[out,retval]*/);
  BSTR            __fastcall get_DLName(void);
  HRESULT         __fastcall set_DLName(BSTR DLName/*[in]*/);
  HRESULT         __fastcall get_MemberCount(long* MemberCount/*[out,retval]*/);
  long            __fastcall get_MemberCount(void);
  HRESULT         __fastcall get_CheckSum(long* CheckSum/*[out,retval]*/);
  long            __fastcall get_CheckSum(void);
  HRESULT         __fastcall get_Members(VARIANT* Members/*[out,retval]*/);
  VARIANT         __fastcall get_Members(void);
  HRESULT         __fastcall set_Members(VARIANT Members/*[in]*/);
  HRESULT         __fastcall get_OneOffMembers(VARIANT* OneOffMembers/*[out,retval]*/);
  VARIANT         __fastcall get_OneOffMembers(void);
  HRESULT         __fastcall set_OneOffMembers(VARIANT OneOffMembers/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall AddMembers(Outlook_xp::Recipients* Recipients/*[in]*/);
  HRESULT         __fastcall RemoveMembers(Outlook_xp::Recipients* Recipients/*[in]*/);
  HRESULT         __fastcall GetMember(long Index/*[in]*/, 
                                       Outlook_xp::Recipient** Recipient/*[out,retval]*/);
  Outlook_xp::Recipient* __fastcall GetMember(long Index/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall AddMember(Outlook_xp::Recipient* Recipient/*[in]*/);
  HRESULT         __fastcall RemoveMember(Outlook_xp::Recipient* Recipient/*[in]*/);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            DLName = {read = get_DLName, write = set_DLName};
  __property   long            MemberCount = {read = get_MemberCount};
  __property   long            CheckSum = {read = get_CheckSum};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _DistListItemDispT<_DistListItem> _DistListItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_DocumentItem
// Interface: _DocumentItem
// *********************************************************************//
template <class T /* _DocumentItem */ >
class TCOM_DocumentItemT : public TComInterface<_DocumentItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_DocumentItemT() {}
  TCOM_DocumentItemT(_DocumentItem *intf, bool addRef = false) : TComInterface<_DocumentItem>(intf, addRef) {}
  TCOM_DocumentItemT(const TCOM_DocumentItemT& src) : TComInterface<_DocumentItem>(src) {}
  TCOM_DocumentItemT& operator=(const TCOM_DocumentItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_DocumentItemT<_DocumentItem> TCOM_DocumentItem;

// *********************************************************************//
// DispIntf:  _DocumentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063020-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DocumentItemDispT : public TAutoDriver<_DocumentItem>
{
public:
  _DocumentItemDispT(){}

  _DocumentItemDispT(_DocumentItem *pintf)
  {
    TAutoDriver<_DocumentItem>::Bind(pintf, false);
  }

  _DocumentItemDispT(_DocumentItemPtr pintf)
  {
    TAutoDriver<_DocumentItem>::Bind(pintf, true);
  }

  _DocumentItemDispT& operator=(_DocumentItem *pintf)
  {
    TAutoDriver<_DocumentItem>::Bind(pintf, false);
    return *this;
  }

  _DocumentItemDispT& operator=(_DocumentItemPtr pintf)
  {
    TAutoDriver<_DocumentItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DocumentItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DocumentItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _DocumentItemDispT<_DocumentItem> _DocumentItemDisp;

// *********************************************************************//
// DispIntf:  ExplorersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063078-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ExplorersEventsDispT : public TAutoDriver<ExplorersEvents>
{
public:
  ExplorersEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall NewExplorer(Outlook_xp::_Explorer* Explorer/*[in]*/);

};
typedef ExplorersEventsDispT<ExplorersEvents> ExplorersEventsDisp;

// *********************************************************************//
// DispIntf:  FoldersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063076-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class FoldersEventsDispT : public TAutoDriver<FoldersEvents>
{
public:
  FoldersEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall FolderAdd(Outlook_xp::MAPIFolder* Folder/*[in]*/);
  void            __fastcall FolderChange(Outlook_xp::MAPIFolder* Folder/*[in]*/);
  void            __fastcall FolderRemove();

};
typedef FoldersEventsDispT<FoldersEvents> FoldersEventsDisp;

// *********************************************************************//
// DispIntf:  InspectorsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063079-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class InspectorsEventsDispT : public TAutoDriver<InspectorsEvents>
{
public:
  InspectorsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall NewInspector(Outlook_xp::_Inspector* Inspector/*[in]*/);

};
typedef InspectorsEventsDispT<InspectorsEvents> InspectorsEventsDisp;

// *********************************************************************//
// DispIntf:  ItemsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063077-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ItemsEventsDispT : public TAutoDriver<ItemsEvents>
{
public:
  ItemsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall ItemAdd(LPDISPATCH Item/*[in]*/);
  void            __fastcall ItemChange(LPDISPATCH Item/*[in]*/);
  void            __fastcall ItemRemove();

};
typedef ItemsEventsDispT<ItemsEvents> ItemsEventsDisp;

// *********************************************************************//
// SmartIntf: TCOM_JournalItem
// Interface: _JournalItem
// *********************************************************************//
template <class T /* _JournalItem */ >
class TCOM_JournalItemT : public TComInterface<_JournalItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_JournalItemT() {}
  TCOM_JournalItemT(_JournalItem *intf, bool addRef = false) : TComInterface<_JournalItem>(intf, addRef) {}
  TCOM_JournalItemT(const TCOM_JournalItemT& src) : TComInterface<_JournalItem>(src) {}
  TCOM_JournalItemT& operator=(const TCOM_JournalItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ContactNames(BSTR* ContactNames/*[out,retval]*/);
  BSTR            __fastcall get_ContactNames(void);
  HRESULT         __fastcall set_ContactNames(BSTR ContactNames/*[in]*/);
  HRESULT         __fastcall get_DocPosted(VARIANT_BOOL* DocPosted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocPosted(void);
  HRESULT         __fastcall set_DocPosted(VARIANT_BOOL DocPosted/*[in]*/);
  HRESULT         __fastcall get_DocPrinted(VARIANT_BOOL* DocPrinted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocPrinted(void);
  HRESULT         __fastcall set_DocPrinted(VARIANT_BOOL DocPrinted/*[in]*/);
  HRESULT         __fastcall get_DocRouted(VARIANT_BOOL* DocRouted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocRouted(void);
  HRESULT         __fastcall set_DocRouted(VARIANT_BOOL DocRouted/*[in]*/);
  HRESULT         __fastcall get_DocSaved(VARIANT_BOOL* DocSaved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocSaved(void);
  HRESULT         __fastcall set_DocSaved(VARIANT_BOOL DocSaved/*[in]*/);
  HRESULT         __fastcall get_Duration(long* Duration/*[out,retval]*/);
  long            __fastcall get_Duration(void);
  HRESULT         __fastcall set_Duration(long Duration/*[in]*/);
  HRESULT         __fastcall get_End(DATE* End/*[out,retval]*/);
  DATE            __fastcall get_End(void);
  HRESULT         __fastcall set_End(DATE End/*[in]*/);
  HRESULT         __fastcall get_Type(BSTR* Type/*[out,retval]*/);
  BSTR            __fastcall get_Type(void);
  HRESULT         __fastcall set_Type(BSTR Type/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_Start(DATE* Start/*[out,retval]*/);
  DATE            __fastcall get_Start(void);
  HRESULT         __fastcall set_Start(DATE Start/*[in]*/);
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall StartTimer(void);
  HRESULT         __fastcall StopTimer(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   VARIANT_BOOL    DocPosted = {read = get_DocPosted, write = set_DocPosted};
  __property   VARIANT_BOOL    DocPrinted = {read = get_DocPrinted, write = set_DocPrinted};
  __property   VARIANT_BOOL    DocRouted = {read = get_DocRouted, write = set_DocRouted};
  __property   VARIANT_BOOL    DocSaved = {read = get_DocSaved, write = set_DocSaved};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   BSTR            Type = {read = get_Type, write = set_Type};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_JournalItemT<_JournalItem> TCOM_JournalItem;

// *********************************************************************//
// DispIntf:  _JournalItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063022-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _JournalItemDispT : public TAutoDriver<_JournalItem>
{
public:
  _JournalItemDispT(){}

  _JournalItemDispT(_JournalItem *pintf)
  {
    TAutoDriver<_JournalItem>::Bind(pintf, false);
  }

  _JournalItemDispT(_JournalItemPtr pintf)
  {
    TAutoDriver<_JournalItem>::Bind(pintf, true);
  }

  _JournalItemDispT& operator=(_JournalItem *pintf)
  {
    TAutoDriver<_JournalItem>::Bind(pintf, false);
    return *this;
  }

  _JournalItemDispT& operator=(_JournalItemPtr pintf)
  {
    TAutoDriver<_JournalItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_JournalItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_JournalItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ContactNames(BSTR* ContactNames/*[out,retval]*/);
  BSTR            __fastcall get_ContactNames(void);
  HRESULT         __fastcall set_ContactNames(BSTR ContactNames/*[in]*/);
  HRESULT         __fastcall get_DocPosted(VARIANT_BOOL* DocPosted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocPosted(void);
  HRESULT         __fastcall set_DocPosted(VARIANT_BOOL DocPosted/*[in]*/);
  HRESULT         __fastcall get_DocPrinted(VARIANT_BOOL* DocPrinted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocPrinted(void);
  HRESULT         __fastcall set_DocPrinted(VARIANT_BOOL DocPrinted/*[in]*/);
  HRESULT         __fastcall get_DocRouted(VARIANT_BOOL* DocRouted/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocRouted(void);
  HRESULT         __fastcall set_DocRouted(VARIANT_BOOL DocRouted/*[in]*/);
  HRESULT         __fastcall get_DocSaved(VARIANT_BOOL* DocSaved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_DocSaved(void);
  HRESULT         __fastcall set_DocSaved(VARIANT_BOOL DocSaved/*[in]*/);
  HRESULT         __fastcall get_Duration(long* Duration/*[out,retval]*/);
  long            __fastcall get_Duration(void);
  HRESULT         __fastcall set_Duration(long Duration/*[in]*/);
  HRESULT         __fastcall get_End(DATE* End/*[out,retval]*/);
  DATE            __fastcall get_End(void);
  HRESULT         __fastcall set_End(DATE End/*[in]*/);
  HRESULT         __fastcall get_Type(BSTR* Type/*[out,retval]*/);
  BSTR            __fastcall get_Type(void);
  HRESULT         __fastcall set_Type(BSTR Type/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_Start(DATE* Start/*[out,retval]*/);
  DATE            __fastcall get_Start(void);
  HRESULT         __fastcall set_Start(DATE Start/*[in]*/);
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall ReplyAll(void);
  HRESULT         __fastcall StartTimer();
  HRESULT         __fastcall StopTimer();
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   VARIANT_BOOL    DocPosted = {read = get_DocPosted, write = set_DocPosted};
  __property   VARIANT_BOOL    DocPrinted = {read = get_DocPrinted, write = set_DocPrinted};
  __property   VARIANT_BOOL    DocRouted = {read = get_DocRouted, write = set_DocRouted};
  __property   VARIANT_BOOL    DocSaved = {read = get_DocSaved, write = set_DocSaved};
  __property   long            Duration = {read = get_Duration, write = set_Duration};
  __property   DATE            End = {read = get_End, write = set_End};
  __property   BSTR            Type = {read = get_Type, write = set_Type};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            Start = {read = get_Start, write = set_Start};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _JournalItemDispT<_JournalItem> _JournalItemDisp;

// *********************************************************************//
// DispIntf:  NameSpaceEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006308C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class NameSpaceEventsDispT : public TAutoDriver<NameSpaceEvents>
{
public:
  NameSpaceEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/, 
                                             Outlook_xp::MAPIFolder* Folder/*[in]*/);

};
typedef NameSpaceEventsDispT<NameSpaceEvents> NameSpaceEventsDisp;

// *********************************************************************//
// SmartIntf: TCOM_NoteItem
// Interface: _NoteItem
// *********************************************************************//
template <class T /* _NoteItem */ >
class TCOM_NoteItemT : public TComInterface<_NoteItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_NoteItemT() {}
  TCOM_NoteItemT(_NoteItem *intf, bool addRef = false) : TComInterface<_NoteItem>(intf, addRef) {}
  TCOM_NoteItemT(const TCOM_NoteItemT& src) : TComInterface<_NoteItem>(src) {}
  TCOM_NoteItemT& operator=(const TCOM_NoteItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Color(Outlook_xp::OlNoteColor* Color/*[out,retval]*/);
  Outlook_xp::OlNoteColor __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(Outlook_xp::OlNoteColor Color/*[in]*/);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   Outlook_xp::OlNoteColor Color = {read = get_Color, write = set_Color};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_NoteItemT<_NoteItem> TCOM_NoteItem;

// *********************************************************************//
// DispIntf:  _NoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063025-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _NoteItemDispT : public TAutoDriver<_NoteItem>
{
public:
  _NoteItemDispT(){}

  _NoteItemDispT(_NoteItem *pintf)
  {
    TAutoDriver<_NoteItem>::Bind(pintf, false);
  }

  _NoteItemDispT(_NoteItemPtr pintf)
  {
    TAutoDriver<_NoteItem>::Bind(pintf, true);
  }

  _NoteItemDispT& operator=(_NoteItem *pintf)
  {
    TAutoDriver<_NoteItem>::Bind(pintf, false);
    return *this;
  }

  _NoteItemDispT& operator=(_NoteItemPtr pintf)
  {
    TAutoDriver<_NoteItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_NoteItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_NoteItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Color(Outlook_xp::OlNoteColor* Color/*[out,retval]*/);
  Outlook_xp::OlNoteColor __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(Outlook_xp::OlNoteColor Color/*[in]*/);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_Left(long* Left/*[out,retval]*/);
  long            __fastcall get_Left(void);
  HRESULT         __fastcall set_Left(long Left/*[in]*/);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall get_Top(long* Top/*[out,retval]*/);
  long            __fastcall get_Top(void);
  HRESULT         __fastcall set_Top(long Top/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   Outlook_xp::OlNoteColor Color = {read = get_Color, write = set_Color};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   long            Left = {read = get_Left, write = set_Left};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject};
  __property   long            Top = {read = get_Top, write = set_Top};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _NoteItemDispT<_NoteItem> _NoteItemDisp;

typedef TComInterface<OutlookBarGroup>  TCOMOutlookBarGroup;

// *********************************************************************//
// DispIntf:  OutlookBarGroup
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063073-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class OutlookBarGroupDispT : public TAutoDriver<OutlookBarGroup>
{
public:
  OutlookBarGroupDispT(){}

  OutlookBarGroupDispT(OutlookBarGroup *pintf)
  {
    TAutoDriver<OutlookBarGroup>::Bind(pintf, false);
  }

  OutlookBarGroupDispT(OutlookBarGroupPtr pintf)
  {
    TAutoDriver<OutlookBarGroup>::Bind(pintf, true);
  }

  OutlookBarGroupDispT& operator=(OutlookBarGroup *pintf)
  {
    TAutoDriver<OutlookBarGroup>::Bind(pintf, false);
    return *this;
  }

  OutlookBarGroupDispT& operator=(OutlookBarGroupPtr pintf)
  {
    TAutoDriver<OutlookBarGroup>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_Shortcuts(Outlook_xp::_OutlookBarShortcuts** Shortcuts/*[out,retval]*/);
  Outlook_xp::_OutlookBarShortcutsPtr __fastcall get_Shortcuts(void);
  HRESULT         __fastcall get_ViewType(Outlook_xp::OlOutlookBarViewType* ViewType/*[out,retval]*/);
  Outlook_xp::OlOutlookBarViewType __fastcall get_ViewType(void);
  HRESULT         __fastcall set_ViewType(Outlook_xp::OlOutlookBarViewType ViewType/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Outlook_xp::_OutlookBarShortcutsPtr Shortcuts = {read = get_Shortcuts};
  __property   Outlook_xp::OlOutlookBarViewType ViewType = {read = get_ViewType, write = set_ViewType};
};
typedef OutlookBarGroupDispT<OutlookBarGroup> OutlookBarGroupDisp;

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarShortcuts
// Interface: _OutlookBarShortcuts
// *********************************************************************//
template <class T /* _OutlookBarShortcuts */ >
class TCOM_OutlookBarShortcutsT : public TComInterface<_OutlookBarShortcuts>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_OutlookBarShortcutsT() {}
  TCOM_OutlookBarShortcutsT(_OutlookBarShortcuts *intf, bool addRef = false) : TComInterface<_OutlookBarShortcuts>(intf, addRef) {}
  TCOM_OutlookBarShortcutsT(const TCOM_OutlookBarShortcutsT& src) : TComInterface<_OutlookBarShortcuts>(src) {}
  TCOM_OutlookBarShortcutsT& operator=(const TCOM_OutlookBarShortcutsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::OutlookBarShortcut** Item/*[out,retval]*/);
  Outlook_xp::OutlookBarShortcut* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                 VARIANT Index/*[in,opt]*/, 
                                 Outlook_xp::OutlookBarShortcut** Shortcut/*[out,retval]*/);
  Outlook_xp::OutlookBarShortcut* __fastcall Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                                 VARIANT Index/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_OutlookBarShortcutsT<_OutlookBarShortcuts> TCOM_OutlookBarShortcuts;

// *********************************************************************//
// DispIntf:  _OutlookBarShortcuts
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063074-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _OutlookBarShortcutsDispT : public TAutoDriver<_OutlookBarShortcuts>
{
public:
  _OutlookBarShortcutsDispT(){}

  _OutlookBarShortcutsDispT(_OutlookBarShortcuts *pintf)
  {
    TAutoDriver<_OutlookBarShortcuts>::Bind(pintf, false);
  }

  _OutlookBarShortcutsDispT(_OutlookBarShortcutsPtr pintf)
  {
    TAutoDriver<_OutlookBarShortcuts>::Bind(pintf, true);
  }

  _OutlookBarShortcutsDispT& operator=(_OutlookBarShortcuts *pintf)
  {
    TAutoDriver<_OutlookBarShortcuts>::Bind(pintf, false);
    return *this;
  }

  _OutlookBarShortcutsDispT& operator=(_OutlookBarShortcutsPtr pintf)
  {
    TAutoDriver<_OutlookBarShortcuts>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OutlookBarShortcuts));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OutlookBarShortcuts);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::OutlookBarShortcut** Item/*[out,retval]*/);
  Outlook_xp::OutlookBarShortcut* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                 VARIANT Index/*[in,opt]*/, 
                                 Outlook_xp::OutlookBarShortcut** Shortcut/*[out,retval]*/);
  Outlook_xp::OutlookBarShortcut* __fastcall Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                                 VARIANT Index/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _OutlookBarShortcutsDispT<_OutlookBarShortcuts> _OutlookBarShortcutsDisp;

typedef TComInterface<OutlookBarShortcut>  TCOMOutlookBarShortcut;

// *********************************************************************//
// DispIntf:  OutlookBarShortcut
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063075-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class OutlookBarShortcutDispT : public TAutoDriver<OutlookBarShortcut>
{
public:
  OutlookBarShortcutDispT(){}

  OutlookBarShortcutDispT(OutlookBarShortcut *pintf)
  {
    TAutoDriver<OutlookBarShortcut>::Bind(pintf, false);
  }

  OutlookBarShortcutDispT(OutlookBarShortcutPtr pintf)
  {
    TAutoDriver<OutlookBarShortcut>::Bind(pintf, true);
  }

  OutlookBarShortcutDispT& operator=(OutlookBarShortcut *pintf)
  {
    TAutoDriver<OutlookBarShortcut>::Bind(pintf, false);
    return *this;
  }

  OutlookBarShortcutDispT& operator=(OutlookBarShortcutPtr pintf)
  {
    TAutoDriver<OutlookBarShortcut>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR Name/*[in]*/);
  HRESULT         __fastcall get_Target(VARIANT* Target/*[out,retval]*/);
  VARIANT         __fastcall get_Target(void);
  HRESULT         __fastcall SetIcon(VARIANT Icon/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
};
typedef OutlookBarShortcutDispT<OutlookBarShortcut> OutlookBarShortcutDisp;

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarGroups
// Interface: _OutlookBarGroups
// *********************************************************************//
template <class T /* _OutlookBarGroups */ >
class TCOM_OutlookBarGroupsT : public TComInterface<_OutlookBarGroups>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_OutlookBarGroupsT() {}
  TCOM_OutlookBarGroupsT(_OutlookBarGroups *intf, bool addRef = false) : TComInterface<_OutlookBarGroups>(intf, addRef) {}
  TCOM_OutlookBarGroupsT(const TCOM_OutlookBarGroupsT& src) : TComInterface<_OutlookBarGroups>(src) {}
  TCOM_OutlookBarGroupsT& operator=(const TCOM_OutlookBarGroupsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::OutlookBarGroup** Item/*[out,retval]*/);
  Outlook_xp::OutlookBarGroup* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/, 
                                 Outlook_xp::OutlookBarGroup** Group/*[out,retval]*/);
  Outlook_xp::OutlookBarGroup* __fastcall Add(BSTR Name/*[in]*/, 
                                              VARIANT Index/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef TCOM_OutlookBarGroupsT<_OutlookBarGroups> TCOM_OutlookBarGroups;

// *********************************************************************//
// DispIntf:  _OutlookBarGroups
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063072-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _OutlookBarGroupsDispT : public TAutoDriver<_OutlookBarGroups>
{
public:
  _OutlookBarGroupsDispT(){}

  _OutlookBarGroupsDispT(_OutlookBarGroups *pintf)
  {
    TAutoDriver<_OutlookBarGroups>::Bind(pintf, false);
  }

  _OutlookBarGroupsDispT(_OutlookBarGroupsPtr pintf)
  {
    TAutoDriver<_OutlookBarGroups>::Bind(pintf, true);
  }

  _OutlookBarGroupsDispT& operator=(_OutlookBarGroups *pintf)
  {
    TAutoDriver<_OutlookBarGroups>::Bind(pintf, false);
    return *this;
  }

  _OutlookBarGroupsDispT& operator=(_OutlookBarGroupsPtr pintf)
  {
    TAutoDriver<_OutlookBarGroups>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OutlookBarGroups));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OutlookBarGroups);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, 
                                  Outlook_xp::OutlookBarGroup** Item/*[out,retval]*/);
  Outlook_xp::OutlookBarGroup* __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/, 
                                 Outlook_xp::OutlookBarGroup** Group/*[out,retval]*/);
  Outlook_xp::OutlookBarGroup* __fastcall Add(BSTR Name/*[in]*/, 
                                              VARIANT Index/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(VARIANT Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef _OutlookBarGroupsDispT<_OutlookBarGroups> _OutlookBarGroupsDisp;

// *********************************************************************//
// DispIntf:  OutlookBarGroupsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class OutlookBarGroupsEventsDispT : public TAutoDriver<OutlookBarGroupsEvents>
{
public:
  OutlookBarGroupsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall GroupAdd(Outlook_xp::OutlookBarGroup* NewGroup/*[in]*/);
  void            __fastcall BeforeGroupAdd(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeGroupRemove(Outlook_xp::OutlookBarGroup* Group/*[in]*/, 
                                               VARIANT_BOOL* Cancel/*[in]*/);

};
typedef OutlookBarGroupsEventsDispT<OutlookBarGroupsEvents> OutlookBarGroupsEventsDisp;

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarPane
// Interface: _OutlookBarPane
// *********************************************************************//
template <class T /* _OutlookBarPane */ >
class TCOM_OutlookBarPaneT : public TComInterface<_OutlookBarPane>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_OutlookBarPaneT() {}
  TCOM_OutlookBarPaneT(_OutlookBarPane *intf, bool addRef = false) : TComInterface<_OutlookBarPane>(intf, addRef) {}
  TCOM_OutlookBarPaneT(const TCOM_OutlookBarPaneT& src) : TComInterface<_OutlookBarPane>(src) {}
  TCOM_OutlookBarPaneT& operator=(const TCOM_OutlookBarPaneT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Contents(Outlook_xp::OutlookBarStorage** Contents/*[out,retval]*/);
  Outlook_xp::OutlookBarStoragePtr __fastcall get_Contents(void);
  HRESULT         __fastcall get_CurrentGroup(Outlook_xp::OutlookBarGroup** CurrentGroup/*[out,retval]*/);
  Outlook_xp::OutlookBarGroupPtr __fastcall get_CurrentGroup(void);
  HRESULT         __fastcall _set_CurrentGroup(Outlook_xp::OutlookBarGroup* CurrentGroup/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Visible(VARIANT_BOOL* Visible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(VARIANT_BOOL Visible/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OutlookBarStoragePtr Contents = {read = get_Contents};
  __property   Outlook_xp::OutlookBarGroupPtr CurrentGroup = {read = get_CurrentGroup};
  __property   BSTR            Name = {read = get_Name};
  __property   VARIANT_BOOL    Visible = {read = get_Visible, write = set_Visible};
};
typedef TCOM_OutlookBarPaneT<_OutlookBarPane> TCOM_OutlookBarPane;

// *********************************************************************//
// DispIntf:  _OutlookBarPane
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063070-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _OutlookBarPaneDispT : public TAutoDriver<_OutlookBarPane>
{
public:
  _OutlookBarPaneDispT(){}

  _OutlookBarPaneDispT(_OutlookBarPane *pintf)
  {
    TAutoDriver<_OutlookBarPane>::Bind(pintf, false);
  }

  _OutlookBarPaneDispT(_OutlookBarPanePtr pintf)
  {
    TAutoDriver<_OutlookBarPane>::Bind(pintf, true);
  }

  _OutlookBarPaneDispT& operator=(_OutlookBarPane *pintf)
  {
    TAutoDriver<_OutlookBarPane>::Bind(pintf, false);
    return *this;
  }

  _OutlookBarPaneDispT& operator=(_OutlookBarPanePtr pintf)
  {
    TAutoDriver<_OutlookBarPane>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OutlookBarPane));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OutlookBarPane);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Contents(Outlook_xp::OutlookBarStorage** Contents/*[out,retval]*/);
  Outlook_xp::OutlookBarStoragePtr __fastcall get_Contents(void);
  HRESULT         __fastcall get_CurrentGroup(Outlook_xp::OutlookBarGroup** CurrentGroup/*[out,retval]*/);
  Outlook_xp::OutlookBarGroupPtr __fastcall get_CurrentGroup(void);
  HRESULT         __fastcall _set_CurrentGroup(Outlook_xp::OutlookBarGroup* CurrentGroup/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* Name/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Visible(VARIANT_BOOL* Visible/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(VARIANT_BOOL Visible/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::OutlookBarStoragePtr Contents = {read = get_Contents};
  __property   Outlook_xp::OutlookBarGroupPtr CurrentGroup = {read = get_CurrentGroup};
  __property   BSTR            Name = {read = get_Name};
  __property   VARIANT_BOOL    Visible = {read = get_Visible, write = set_Visible};
};
typedef _OutlookBarPaneDispT<_OutlookBarPane> _OutlookBarPaneDisp;

typedef TComInterface<OutlookBarStorage>  TCOMOutlookBarStorage;

// *********************************************************************//
// DispIntf:  OutlookBarStorage
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063071-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class OutlookBarStorageDispT : public TAutoDriver<OutlookBarStorage>
{
public:
  OutlookBarStorageDispT(){}

  OutlookBarStorageDispT(OutlookBarStorage *pintf)
  {
    TAutoDriver<OutlookBarStorage>::Bind(pintf, false);
  }

  OutlookBarStorageDispT(OutlookBarStoragePtr pintf)
  {
    TAutoDriver<OutlookBarStorage>::Bind(pintf, true);
  }

  OutlookBarStorageDispT& operator=(OutlookBarStorage *pintf)
  {
    TAutoDriver<OutlookBarStorage>::Bind(pintf, false);
    return *this;
  }

  OutlookBarStorageDispT& operator=(OutlookBarStoragePtr pintf)
  {
    TAutoDriver<OutlookBarStorage>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Groups(Outlook_xp::_OutlookBarGroups** Groups/*[out,retval]*/);
  Outlook_xp::_OutlookBarGroupsPtr __fastcall get_Groups(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::_OutlookBarGroupsPtr Groups = {read = get_Groups};
};
typedef OutlookBarStorageDispT<OutlookBarStorage> OutlookBarStorageDisp;

// *********************************************************************//
// DispIntf:  OutlookBarPaneEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class OutlookBarPaneEventsDispT : public TAutoDriver<OutlookBarPaneEvents>
{
public:
  OutlookBarPaneEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall BeforeNavigate(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/, 
                                            VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeGroupSwitch(Outlook_xp::OutlookBarGroup* ToGroup/*[in]*/, 
                                               VARIANT_BOOL* Cancel/*[in]*/);

};
typedef OutlookBarPaneEventsDispT<OutlookBarPaneEvents> OutlookBarPaneEventsDisp;

// *********************************************************************//
// DispIntf:  OutlookBarShortcutsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class OutlookBarShortcutsEventsDispT : public TAutoDriver<OutlookBarShortcutsEvents>
{
public:
  OutlookBarShortcutsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall ShortcutAdd(Outlook_xp::OutlookBarShortcut* NewShortcut/*[in]*/);
  void            __fastcall BeforeShortcutAdd(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall BeforeShortcutRemove(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/, 
                                                  VARIANT_BOOL* Cancel/*[in]*/);

};
typedef OutlookBarShortcutsEventsDispT<OutlookBarShortcutsEvents> OutlookBarShortcutsEventsDisp;

// *********************************************************************//
// DispIntf:  PropertyPage
// Flags:     (4096) Dispatchable
// GUID:      {0006307E-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class PropertyPageDispT : public TAutoDriver<PropertyPage>
{
public:
  PropertyPageDispT(){}

  PropertyPageDispT(PropertyPage *pintf)
  {
    TAutoDriver<PropertyPage>::Bind(pintf, false);
  }

  PropertyPageDispT(PropertyPagePtr pintf)
  {
    TAutoDriver<PropertyPage>::Bind(pintf, true);
  }

  PropertyPageDispT& operator=(PropertyPage *pintf)
  {
    TAutoDriver<PropertyPage>::Bind(pintf, false);
    return *this;
  }

  PropertyPageDispT& operator=(PropertyPagePtr pintf)
  {
    TAutoDriver<PropertyPage>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall GetPageInfo(BSTR* HelpFile/*[in,out]*/, long* HelpContext/*[in,out]*/);
  HRESULT         __fastcall get_Dirty(VARIANT_BOOL* Dirty/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Dirty(void);
  HRESULT         __fastcall Apply();

  __property   VARIANT_BOOL    Dirty = {read = get_Dirty};
};
typedef PropertyPageDispT<PropertyPage> PropertyPageDisp;

typedef TComInterface<PropertyPageSite>  TCOMPropertyPageSite;

// *********************************************************************//
// DispIntf:  PropertyPageSite
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006307F-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class PropertyPageSiteDispT : public TAutoDriver<PropertyPageSite>
{
public:
  PropertyPageSiteDispT(){}

  PropertyPageSiteDispT(PropertyPageSite *pintf)
  {
    TAutoDriver<PropertyPageSite>::Bind(pintf, false);
  }

  PropertyPageSiteDispT(PropertyPageSitePtr pintf)
  {
    TAutoDriver<PropertyPageSite>::Bind(pintf, true);
  }

  PropertyPageSiteDispT& operator=(PropertyPageSite *pintf)
  {
    TAutoDriver<PropertyPageSite>::Bind(pintf, false);
    return *this;
  }

  PropertyPageSiteDispT& operator=(PropertyPageSitePtr pintf)
  {
    TAutoDriver<PropertyPageSite>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall OnStatusChange();

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
};
typedef PropertyPageSiteDispT<PropertyPageSite> PropertyPageSiteDisp;

typedef TComInterface<Pages>  TCOMPages;

// *********************************************************************//
// DispIntf:  Pages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303F-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class PagesDispT : public TAutoDriver<Pages>
{
public:
  PagesDispT(){}

  PagesDispT(Pages *pintf)
  {
    TAutoDriver<Pages>::Bind(pintf, false);
  }

  PagesDispT(PagesPtr pintf)
  {
    TAutoDriver<Pages>::Bind(pintf, true);
  }

  PagesDispT& operator=(Pages *pintf)
  {
    TAutoDriver<Pages>::Bind(pintf, false);
    return *this;
  }

  PagesDispT& operator=(PagesPtr pintf)
  {
    TAutoDriver<Pages>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Item(VARIANT Index/*[in]*/);
  HRESULT         __fastcall Add(VARIANT Name/*[in,opt]*/, LPDISPATCH* Page/*[out,retval]*/);
  LPDISPATCH      __fastcall Add(VARIANT Name/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Remove(long Index/*[in]*/);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   long            Count = {read = get_Count};
};
typedef PagesDispT<Pages> PagesDisp;

// *********************************************************************//
// SmartIntf: TCOM_PostItem
// Interface: _PostItem
// *********************************************************************//
template <class T /* _PostItem */ >
class TCOM_PostItemT : public TComInterface<_PostItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_PostItemT() {}
  TCOM_PostItemT(_PostItem *intf, bool addRef = false) : TComInterface<_PostItem>(intf, addRef) {}
  TCOM_PostItemT(const TCOM_PostItemT& src) : TComInterface<_PostItem>(src) {}
  TCOM_PostItemT& operator=(const TCOM_PostItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/);
  BSTR            __fastcall get_HTMLBody(void);
  HRESULT         __fastcall set_HTMLBody(BSTR HTMLBody/*[in]*/);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall ClearConversationIndex(void);
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Post(void);
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/);
  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void);
  HRESULT         __fastcall set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall SetACLs(VARIANT_BOOL* AllOkay/*[out,retval]*/);
  VARIANT_BOOL    __fastcall SetACLs(void);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_PostItemT<_PostItem> TCOM_PostItem;

// *********************************************************************//
// DispIntf:  _PostItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063024-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _PostItemDispT : public TAutoDriver<_PostItem>
{
public:
  _PostItemDispT(){}

  _PostItemDispT(_PostItem *pintf)
  {
    TAutoDriver<_PostItem>::Bind(pintf, false);
  }

  _PostItemDispT(_PostItemPtr pintf)
  {
    TAutoDriver<_PostItem>::Bind(pintf, true);
  }

  _PostItemDispT& operator=(_PostItem *pintf)
  {
    TAutoDriver<_PostItem>::Bind(pintf, false);
    return *this;
  }

  _PostItemDispT& operator=(_PostItemPtr pintf)
  {
    TAutoDriver<_PostItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PostItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PostItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/);
  DATE            __fastcall get_ExpiryTime(void);
  HRESULT         __fastcall set_ExpiryTime(DATE ExpiryTime/*[in]*/);
  HRESULT         __fastcall get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/);
  BSTR            __fastcall get_HTMLBody(void);
  HRESULT         __fastcall set_HTMLBody(BSTR HTMLBody/*[in]*/);
  HRESULT         __fastcall get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/);
  DATE            __fastcall get_ReceivedTime(void);
  HRESULT         __fastcall get_SenderName(BSTR* SenderName/*[out,retval]*/);
  BSTR            __fastcall get_SenderName(void);
  HRESULT         __fastcall get_SentOn(DATE* SentOn/*[out,retval]*/);
  DATE            __fastcall get_SentOn(void);
  HRESULT         __fastcall ClearConversationIndex();
  HRESULT         __fastcall Forward(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Forward(void);
  HRESULT         __fastcall Post();
  HRESULT         __fastcall Reply(Outlook_xp::MailItem** Item/*[out,retval]*/);
  Outlook_xp::MailItem* __fastcall Reply(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/);
  Outlook_xp::OlBodyFormat __fastcall get_BodyFormat(void);
  HRESULT         __fastcall set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall SetACLs(VARIANT_BOOL* AllOkay/*[out,retval]*/);
  VARIANT_BOOL    __fastcall SetACLs(void);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   DATE            ExpiryTime = {read = get_ExpiryTime, write = set_ExpiryTime};
  __property   BSTR            HTMLBody = {read = get_HTMLBody, write = set_HTMLBody};
  __property   DATE            ReceivedTime = {read = get_ReceivedTime};
  __property   BSTR            SenderName = {read = get_SenderName};
  __property   DATE            SentOn = {read = get_SentOn};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlBodyFormat BodyFormat = {read = get_BodyFormat, write = set_BodyFormat};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _PostItemDispT<_PostItem> _PostItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_RemoteItem
// Interface: _RemoteItem
// *********************************************************************//
template <class T /* _RemoteItem */ >
class TCOM_RemoteItemT : public TComInterface<_RemoteItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_RemoteItemT() {}
  TCOM_RemoteItemT(_RemoteItem *intf, bool addRef = false) : TComInterface<_RemoteItem>(intf, addRef) {}
  TCOM_RemoteItemT(const TCOM_RemoteItemT& src) : TComInterface<_RemoteItem>(src) {}
  TCOM_RemoteItemT& operator=(const TCOM_RemoteItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_HasAttachment(VARIANT_BOOL* HasAttachment/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_HasAttachment(void);
  HRESULT         __fastcall get_RemoteMessageClass(BSTR* RemoteMessageClass/*[out,retval]*/);
  BSTR            __fastcall get_RemoteMessageClass(void);
  HRESULT         __fastcall get_TransferSize(long* TransferSize/*[out,retval]*/);
  long            __fastcall get_TransferSize(void);
  HRESULT         __fastcall get_TransferTime(long* TransferTime/*[out,retval]*/);
  long            __fastcall get_TransferTime(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    HasAttachment = {read = get_HasAttachment};
  __property   BSTR            RemoteMessageClass = {read = get_RemoteMessageClass};
  __property   long            TransferSize = {read = get_TransferSize};
  __property   long            TransferTime = {read = get_TransferTime};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_RemoteItemT<_RemoteItem> TCOM_RemoteItem;

// *********************************************************************//
// DispIntf:  _RemoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063023-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _RemoteItemDispT : public TAutoDriver<_RemoteItem>
{
public:
  _RemoteItemDispT(){}

  _RemoteItemDispT(_RemoteItem *pintf)
  {
    TAutoDriver<_RemoteItem>::Bind(pintf, false);
  }

  _RemoteItemDispT(_RemoteItemPtr pintf)
  {
    TAutoDriver<_RemoteItem>::Bind(pintf, true);
  }

  _RemoteItemDispT& operator=(_RemoteItem *pintf)
  {
    TAutoDriver<_RemoteItem>::Bind(pintf, false);
    return *this;
  }

  _RemoteItemDispT& operator=(_RemoteItemPtr pintf)
  {
    TAutoDriver<_RemoteItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RemoteItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RemoteItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_HasAttachment(VARIANT_BOOL* HasAttachment/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_HasAttachment(void);
  HRESULT         __fastcall get_RemoteMessageClass(BSTR* RemoteMessageClass/*[out,retval]*/);
  BSTR            __fastcall get_RemoteMessageClass(void);
  HRESULT         __fastcall get_TransferSize(long* TransferSize/*[out,retval]*/);
  long            __fastcall get_TransferSize(void);
  HRESULT         __fastcall get_TransferTime(long* TransferTime/*[out,retval]*/);
  long            __fastcall get_TransferTime(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   VARIANT_BOOL    HasAttachment = {read = get_HasAttachment};
  __property   BSTR            RemoteMessageClass = {read = get_RemoteMessageClass};
  __property   long            TransferSize = {read = get_TransferSize};
  __property   long            TransferTime = {read = get_TransferTime};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _RemoteItemDispT<_RemoteItem> _RemoteItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_ReportItem
// Interface: _ReportItem
// *********************************************************************//
template <class T /* _ReportItem */ >
class TCOM_ReportItemT : public TComInterface<_ReportItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_ReportItemT() {}
  TCOM_ReportItemT(_ReportItem *intf, bool addRef = false) : TComInterface<_ReportItem>(intf, addRef) {}
  TCOM_ReportItemT(const TCOM_ReportItemT& src) : TComInterface<_ReportItem>(src) {}
  TCOM_ReportItemT& operator=(const TCOM_ReportItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_ReportItemT<_ReportItem> TCOM_ReportItem;

// *********************************************************************//
// DispIntf:  _ReportItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063026-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _ReportItemDispT : public TAutoDriver<_ReportItem>
{
public:
  _ReportItemDispT(){}

  _ReportItemDispT(_ReportItem *pintf)
  {
    TAutoDriver<_ReportItem>::Bind(pintf, false);
  }

  _ReportItemDispT(_ReportItemPtr pintf)
  {
    TAutoDriver<_ReportItem>::Bind(pintf, true);
  }

  _ReportItemDispT& operator=(_ReportItem *pintf)
  {
    TAutoDriver<_ReportItem>::Bind(pintf, false);
    return *this;
  }

  _ReportItemDispT& operator=(_ReportItemPtr pintf)
  {
    TAutoDriver<_ReportItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ReportItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ReportItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _ReportItemDispT<_ReportItem> _ReportItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_TaskItem
// Interface: _TaskItem
// *********************************************************************//
template <class T /* _TaskItem */ >
class TCOM_TaskItemT : public TComInterface<_TaskItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_TaskItemT() {}
  TCOM_TaskItemT(_TaskItem *intf, bool addRef = false) : TComInterface<_TaskItem>(intf, addRef) {}
  TCOM_TaskItemT(const TCOM_TaskItemT& src) : TComInterface<_TaskItem>(src) {}
  TCOM_TaskItemT& operator=(const TCOM_TaskItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ActualWork(long* ActualWork/*[out,retval]*/);
  long            __fastcall get_ActualWork(void);
  HRESULT         __fastcall set_ActualWork(long ActualWork/*[in]*/);
  HRESULT         __fastcall get_CardData(BSTR* CardData/*[out,retval]*/);
  BSTR            __fastcall get_CardData(void);
  HRESULT         __fastcall set_CardData(BSTR CardData/*[in]*/);
  HRESULT         __fastcall get_Complete(VARIANT_BOOL* Complete/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Complete(void);
  HRESULT         __fastcall set_Complete(VARIANT_BOOL Complete/*[in]*/);
  HRESULT         __fastcall get_Contacts(BSTR* Contacts/*[out,retval]*/);
  BSTR            __fastcall get_Contacts(void);
  HRESULT         __fastcall set_Contacts(BSTR Contacts/*[in]*/);
  HRESULT         __fastcall get_ContactNames(BSTR* ContactNames/*[out,retval]*/);
  BSTR            __fastcall get_ContactNames(void);
  HRESULT         __fastcall set_ContactNames(BSTR ContactNames/*[in]*/);
  HRESULT         __fastcall get_DateCompleted(DATE* DateCompleted/*[out,retval]*/);
  DATE            __fastcall get_DateCompleted(void);
  HRESULT         __fastcall set_DateCompleted(DATE DateCompleted/*[in]*/);
  HRESULT         __fastcall get_DelegationState(Outlook_xp::OlTaskDelegationState* DelegationState/*[out,retval]*/);
  Outlook_xp::OlTaskDelegationState __fastcall get_DelegationState(void);
  HRESULT         __fastcall get_Delegator(BSTR* Delegator/*[out,retval]*/);
  BSTR            __fastcall get_Delegator(void);
  HRESULT         __fastcall get_DueDate(DATE* DueDate/*[out,retval]*/);
  DATE            __fastcall get_DueDate(void);
  HRESULT         __fastcall set_DueDate(DATE DueDate/*[in]*/);
  HRESULT         __fastcall get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsRecurring(void);
  HRESULT         __fastcall get_Ordinal(long* Ordinal/*[out,retval]*/);
  long            __fastcall get_Ordinal(void);
  HRESULT         __fastcall set_Ordinal(long Ordinal/*[in]*/);
  HRESULT         __fastcall get_Owner(BSTR* Owner/*[out,retval]*/);
  BSTR            __fastcall get_Owner(void);
  HRESULT         __fastcall set_Owner(BSTR Owner/*[in]*/);
  HRESULT         __fastcall get_Ownership(Outlook_xp::OlTaskOwnership* Ownership/*[out,retval]*/);
  Outlook_xp::OlTaskOwnership __fastcall get_Ownership(void);
  HRESULT         __fastcall get_PercentComplete(long* PercentComplete/*[out,retval]*/);
  long            __fastcall get_PercentComplete(void);
  HRESULT         __fastcall set_PercentComplete(long PercentComplete/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ResponseState(Outlook_xp::OlTaskResponse* ResponseState/*[out,retval]*/);
  Outlook_xp::OlTaskResponse __fastcall get_ResponseState(void);
  HRESULT         __fastcall get_Role(BSTR* Role/*[out,retval]*/);
  BSTR            __fastcall get_Role(void);
  HRESULT         __fastcall set_Role(BSTR Role/*[in]*/);
  HRESULT         __fastcall get_SchedulePlusPriority(BSTR* SchedulePlusPriority/*[out,retval]*/);
  BSTR            __fastcall get_SchedulePlusPriority(void);
  HRESULT         __fastcall set_SchedulePlusPriority(BSTR SchedulePlusPriority/*[in]*/);
  HRESULT         __fastcall get_StartDate(DATE* StartDate/*[out,retval]*/);
  DATE            __fastcall get_StartDate(void);
  HRESULT         __fastcall set_StartDate(DATE StartDate/*[in]*/);
  HRESULT         __fastcall get_Status(Outlook_xp::OlTaskStatus* Status/*[out,retval]*/);
  Outlook_xp::OlTaskStatus __fastcall get_Status(void);
  HRESULT         __fastcall set_Status(Outlook_xp::OlTaskStatus Status/*[in]*/);
  HRESULT         __fastcall get_StatusOnCompletionRecipients(BSTR* StatusOnCompletionRecipients/*[out,retval]*/);
  BSTR            __fastcall get_StatusOnCompletionRecipients(void);
  HRESULT         __fastcall set_StatusOnCompletionRecipients(BSTR StatusOnCompletionRecipients/*[in]*/);
  HRESULT         __fastcall get_StatusUpdateRecipients(BSTR* StatusUpdateRecipients/*[out,retval]*/);
  BSTR            __fastcall get_StatusUpdateRecipients(void);
  HRESULT         __fastcall set_StatusUpdateRecipients(BSTR StatusUpdateRecipients/*[in]*/);
  HRESULT         __fastcall get_TeamTask(VARIANT_BOOL* TeamTask/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_TeamTask(void);
  HRESULT         __fastcall set_TeamTask(VARIANT_BOOL TeamTask/*[in]*/);
  HRESULT         __fastcall get_TotalWork(long* TotalWork/*[out,retval]*/);
  long            __fastcall get_TotalWork(void);
  HRESULT         __fastcall set_TotalWork(long TotalWork/*[in]*/);
  HRESULT         __fastcall Assign(Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall Assign(void);
  HRESULT         __fastcall CancelResponseState(void);
  HRESULT         __fastcall ClearRecurrencePattern(void);
  HRESULT         __fastcall GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/);
  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void);
  HRESULT         __fastcall MarkComplete(void);
  HRESULT         __fastcall Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                     VARIANT fNoUI/*[in]*/, VARIANT fAdditionalTextDialog/*[in]*/, 
                                     Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                           VARIANT fNoUI/*[in]*/, 
                                           VARIANT fAdditionalTextDialog/*[in]*/);
  HRESULT         __fastcall Send(void);
  HRESULT         __fastcall SkipRecurrence(VARIANT_BOOL* flg/*[out,retval]*/);
  VARIANT_BOOL    __fastcall SkipRecurrence(void);
  HRESULT         __fastcall StatusReport(LPDISPATCH* StatusReport/*[out,retval]*/);
  LPDISPATCH      __fastcall StatusReport(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   long            ActualWork = {read = get_ActualWork, write = set_ActualWork};
  __property   BSTR            CardData = {read = get_CardData, write = set_CardData};
  __property   VARIANT_BOOL    Complete = {read = get_Complete, write = set_Complete};
  __property   BSTR            Contacts = {read = get_Contacts, write = set_Contacts};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   DATE            DateCompleted = {read = get_DateCompleted, write = set_DateCompleted};
  __property   Outlook_xp::OlTaskDelegationState DelegationState = {read = get_DelegationState};
  __property   BSTR            Delegator = {read = get_Delegator};
  __property   DATE            DueDate = {read = get_DueDate, write = set_DueDate};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   long            Ordinal = {read = get_Ordinal, write = set_Ordinal};
  __property   BSTR            Owner = {read = get_Owner, write = set_Owner};
  __property   Outlook_xp::OlTaskOwnership Ownership = {read = get_Ownership};
  __property   long            PercentComplete = {read = get_PercentComplete, write = set_PercentComplete};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   Outlook_xp::OlTaskResponse ResponseState = {read = get_ResponseState};
  __property   BSTR            Role = {read = get_Role, write = set_Role};
  __property   BSTR            SchedulePlusPriority = {read = get_SchedulePlusPriority, write = set_SchedulePlusPriority};
  __property   DATE            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   Outlook_xp::OlTaskStatus Status = {read = get_Status, write = set_Status};
  __property   BSTR            StatusOnCompletionRecipients = {read = get_StatusOnCompletionRecipients, write = set_StatusOnCompletionRecipients};
  __property   BSTR            StatusUpdateRecipients = {read = get_StatusUpdateRecipients, write = set_StatusUpdateRecipients};
  __property   VARIANT_BOOL    TeamTask = {read = get_TeamTask, write = set_TeamTask};
  __property   long            TotalWork = {read = get_TotalWork, write = set_TotalWork};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_TaskItemT<_TaskItem> TCOM_TaskItem;

// *********************************************************************//
// DispIntf:  _TaskItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063035-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _TaskItemDispT : public TAutoDriver<_TaskItem>
{
public:
  _TaskItemDispT(){}

  _TaskItemDispT(_TaskItem *pintf)
  {
    TAutoDriver<_TaskItem>::Bind(pintf, false);
  }

  _TaskItemDispT(_TaskItemPtr pintf)
  {
    TAutoDriver<_TaskItem>::Bind(pintf, true);
  }

  _TaskItemDispT& operator=(_TaskItem *pintf)
  {
    TAutoDriver<_TaskItem>::Bind(pintf, false);
    return *this;
  }

  _TaskItemDispT& operator=(_TaskItemPtr pintf)
  {
    TAutoDriver<_TaskItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TaskItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TaskItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_ActualWork(long* ActualWork/*[out,retval]*/);
  long            __fastcall get_ActualWork(void);
  HRESULT         __fastcall set_ActualWork(long ActualWork/*[in]*/);
  HRESULT         __fastcall get_CardData(BSTR* CardData/*[out,retval]*/);
  BSTR            __fastcall get_CardData(void);
  HRESULT         __fastcall set_CardData(BSTR CardData/*[in]*/);
  HRESULT         __fastcall get_Complete(VARIANT_BOOL* Complete/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Complete(void);
  HRESULT         __fastcall set_Complete(VARIANT_BOOL Complete/*[in]*/);
  HRESULT         __fastcall get_Contacts(BSTR* Contacts/*[out,retval]*/);
  BSTR            __fastcall get_Contacts(void);
  HRESULT         __fastcall set_Contacts(BSTR Contacts/*[in]*/);
  HRESULT         __fastcall get_ContactNames(BSTR* ContactNames/*[out,retval]*/);
  BSTR            __fastcall get_ContactNames(void);
  HRESULT         __fastcall set_ContactNames(BSTR ContactNames/*[in]*/);
  HRESULT         __fastcall get_DateCompleted(DATE* DateCompleted/*[out,retval]*/);
  DATE            __fastcall get_DateCompleted(void);
  HRESULT         __fastcall set_DateCompleted(DATE DateCompleted/*[in]*/);
  HRESULT         __fastcall get_DelegationState(Outlook_xp::OlTaskDelegationState* DelegationState/*[out,retval]*/);
  Outlook_xp::OlTaskDelegationState __fastcall get_DelegationState(void);
  HRESULT         __fastcall get_Delegator(BSTR* Delegator/*[out,retval]*/);
  BSTR            __fastcall get_Delegator(void);
  HRESULT         __fastcall get_DueDate(DATE* DueDate/*[out,retval]*/);
  DATE            __fastcall get_DueDate(void);
  HRESULT         __fastcall set_DueDate(DATE DueDate/*[in]*/);
  HRESULT         __fastcall get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsRecurring(void);
  HRESULT         __fastcall get_Ordinal(long* Ordinal/*[out,retval]*/);
  long            __fastcall get_Ordinal(void);
  HRESULT         __fastcall set_Ordinal(long Ordinal/*[in]*/);
  HRESULT         __fastcall get_Owner(BSTR* Owner/*[out,retval]*/);
  BSTR            __fastcall get_Owner(void);
  HRESULT         __fastcall set_Owner(BSTR Owner/*[in]*/);
  HRESULT         __fastcall get_Ownership(Outlook_xp::OlTaskOwnership* Ownership/*[out,retval]*/);
  Outlook_xp::OlTaskOwnership __fastcall get_Ownership(void);
  HRESULT         __fastcall get_PercentComplete(long* PercentComplete/*[out,retval]*/);
  long            __fastcall get_PercentComplete(void);
  HRESULT         __fastcall set_PercentComplete(long PercentComplete/*[in]*/);
  HRESULT         __fastcall get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/);
  Outlook_xp::RecipientsPtr __fastcall get_Recipients(void);
  HRESULT         __fastcall get_ReminderTime(DATE* ReminderTime/*[out,retval]*/);
  DATE            __fastcall get_ReminderTime(void);
  HRESULT         __fastcall set_ReminderTime(DATE ReminderTime/*[in]*/);
  HRESULT         __fastcall get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderOverrideDefault(void);
  HRESULT         __fastcall set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/);
  HRESULT         __fastcall get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderPlaySound(void);
  HRESULT         __fastcall set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/);
  HRESULT         __fastcall get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReminderSet(void);
  HRESULT         __fastcall set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/);
  HRESULT         __fastcall get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/);
  BSTR            __fastcall get_ReminderSoundFile(void);
  HRESULT         __fastcall set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/);
  HRESULT         __fastcall get_ResponseState(Outlook_xp::OlTaskResponse* ResponseState/*[out,retval]*/);
  Outlook_xp::OlTaskResponse __fastcall get_ResponseState(void);
  HRESULT         __fastcall get_Role(BSTR* Role/*[out,retval]*/);
  BSTR            __fastcall get_Role(void);
  HRESULT         __fastcall set_Role(BSTR Role/*[in]*/);
  HRESULT         __fastcall get_SchedulePlusPriority(BSTR* SchedulePlusPriority/*[out,retval]*/);
  BSTR            __fastcall get_SchedulePlusPriority(void);
  HRESULT         __fastcall set_SchedulePlusPriority(BSTR SchedulePlusPriority/*[in]*/);
  HRESULT         __fastcall get_StartDate(DATE* StartDate/*[out,retval]*/);
  DATE            __fastcall get_StartDate(void);
  HRESULT         __fastcall set_StartDate(DATE StartDate/*[in]*/);
  HRESULT         __fastcall get_Status(Outlook_xp::OlTaskStatus* Status/*[out,retval]*/);
  Outlook_xp::OlTaskStatus __fastcall get_Status(void);
  HRESULT         __fastcall set_Status(Outlook_xp::OlTaskStatus Status/*[in]*/);
  HRESULT         __fastcall get_StatusOnCompletionRecipients(BSTR* StatusOnCompletionRecipients/*[out,retval]*/);
  BSTR            __fastcall get_StatusOnCompletionRecipients(void);
  HRESULT         __fastcall set_StatusOnCompletionRecipients(BSTR StatusOnCompletionRecipients/*[in]*/);
  HRESULT         __fastcall get_StatusUpdateRecipients(BSTR* StatusUpdateRecipients/*[out,retval]*/);
  BSTR            __fastcall get_StatusUpdateRecipients(void);
  HRESULT         __fastcall set_StatusUpdateRecipients(BSTR StatusUpdateRecipients/*[in]*/);
  HRESULT         __fastcall get_TeamTask(VARIANT_BOOL* TeamTask/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_TeamTask(void);
  HRESULT         __fastcall set_TeamTask(VARIANT_BOOL TeamTask/*[in]*/);
  HRESULT         __fastcall get_TotalWork(long* TotalWork/*[out,retval]*/);
  long            __fastcall get_TotalWork(void);
  HRESULT         __fastcall set_TotalWork(long TotalWork/*[in]*/);
  HRESULT         __fastcall Assign(Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall Assign(void);
  HRESULT         __fastcall CancelResponseState();
  HRESULT         __fastcall ClearRecurrencePattern();
  HRESULT         __fastcall GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/);
  Outlook_xp::RecurrencePattern* __fastcall GetRecurrencePattern(void);
  HRESULT         __fastcall MarkComplete();
  HRESULT         __fastcall Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                     VARIANT fNoUI/*[in]*/, VARIANT fAdditionalTextDialog/*[in]*/, 
                                     Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, 
                                           VARIANT fNoUI/*[in]*/, 
                                           VARIANT fAdditionalTextDialog/*[in]*/);
  HRESULT         __fastcall Send();
  HRESULT         __fastcall SkipRecurrence(VARIANT_BOOL* flg/*[out,retval]*/);
  VARIANT_BOOL    __fastcall SkipRecurrence(void);
  HRESULT         __fastcall StatusReport(LPDISPATCH* StatusReport/*[out,retval]*/);
  LPDISPATCH      __fastcall StatusReport(void);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_InternetCodepage(long* InternetCodepage/*[out,retval]*/);
  long            __fastcall get_InternetCodepage(void);
  HRESULT         __fastcall set_InternetCodepage(long InternetCodepage/*[in]*/);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   long            ActualWork = {read = get_ActualWork, write = set_ActualWork};
  __property   BSTR            CardData = {read = get_CardData, write = set_CardData};
  __property   VARIANT_BOOL    Complete = {read = get_Complete, write = set_Complete};
  __property   BSTR            Contacts = {read = get_Contacts, write = set_Contacts};
  __property   BSTR            ContactNames = {read = get_ContactNames, write = set_ContactNames};
  __property   DATE            DateCompleted = {read = get_DateCompleted, write = set_DateCompleted};
  __property   Outlook_xp::OlTaskDelegationState DelegationState = {read = get_DelegationState};
  __property   BSTR            Delegator = {read = get_Delegator};
  __property   DATE            DueDate = {read = get_DueDate, write = set_DueDate};
  __property   VARIANT_BOOL    IsRecurring = {read = get_IsRecurring};
  __property   long            Ordinal = {read = get_Ordinal, write = set_Ordinal};
  __property   BSTR            Owner = {read = get_Owner, write = set_Owner};
  __property   Outlook_xp::OlTaskOwnership Ownership = {read = get_Ownership};
  __property   long            PercentComplete = {read = get_PercentComplete, write = set_PercentComplete};
  __property   Outlook_xp::RecipientsPtr Recipients = {read = get_Recipients};
  __property   DATE            ReminderTime = {read = get_ReminderTime, write = set_ReminderTime};
  __property   VARIANT_BOOL    ReminderOverrideDefault = {read = get_ReminderOverrideDefault, write = set_ReminderOverrideDefault};
  __property   VARIANT_BOOL    ReminderPlaySound = {read = get_ReminderPlaySound, write = set_ReminderPlaySound};
  __property   VARIANT_BOOL    ReminderSet = {read = get_ReminderSet, write = set_ReminderSet};
  __property   BSTR            ReminderSoundFile = {read = get_ReminderSoundFile, write = set_ReminderSoundFile};
  __property   Outlook_xp::OlTaskResponse ResponseState = {read = get_ResponseState};
  __property   BSTR            Role = {read = get_Role, write = set_Role};
  __property   BSTR            SchedulePlusPriority = {read = get_SchedulePlusPriority, write = set_SchedulePlusPriority};
  __property   DATE            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   Outlook_xp::OlTaskStatus Status = {read = get_Status, write = set_Status};
  __property   BSTR            StatusOnCompletionRecipients = {read = get_StatusOnCompletionRecipients, write = set_StatusOnCompletionRecipients};
  __property   BSTR            StatusUpdateRecipients = {read = get_StatusUpdateRecipients, write = set_StatusUpdateRecipients};
  __property   VARIANT_BOOL    TeamTask = {read = get_TeamTask, write = set_TeamTask};
  __property   long            TotalWork = {read = get_TotalWork, write = set_TotalWork};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   long            InternetCodepage = {read = get_InternetCodepage, write = set_InternetCodepage};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _TaskItemDispT<_TaskItem> _TaskItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestAcceptItem
// Interface: _TaskRequestAcceptItem
// *********************************************************************//
template <class T /* _TaskRequestAcceptItem */ >
class TCOM_TaskRequestAcceptItemT : public TComInterface<_TaskRequestAcceptItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_TaskRequestAcceptItemT() {}
  TCOM_TaskRequestAcceptItemT(_TaskRequestAcceptItem *intf, bool addRef = false) : TComInterface<_TaskRequestAcceptItem>(intf, addRef) {}
  TCOM_TaskRequestAcceptItemT(const TCOM_TaskRequestAcceptItemT& src) : TComInterface<_TaskRequestAcceptItem>(src) {}
  TCOM_TaskRequestAcceptItemT& operator=(const TCOM_TaskRequestAcceptItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_TaskRequestAcceptItemT<_TaskRequestAcceptItem> TCOM_TaskRequestAcceptItem;

// *********************************************************************//
// DispIntf:  _TaskRequestAcceptItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063038-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _TaskRequestAcceptItemDispT : public TAutoDriver<_TaskRequestAcceptItem>
{
public:
  _TaskRequestAcceptItemDispT(){}

  _TaskRequestAcceptItemDispT(_TaskRequestAcceptItem *pintf)
  {
    TAutoDriver<_TaskRequestAcceptItem>::Bind(pintf, false);
  }

  _TaskRequestAcceptItemDispT(_TaskRequestAcceptItemPtr pintf)
  {
    TAutoDriver<_TaskRequestAcceptItem>::Bind(pintf, true);
  }

  _TaskRequestAcceptItemDispT& operator=(_TaskRequestAcceptItem *pintf)
  {
    TAutoDriver<_TaskRequestAcceptItem>::Bind(pintf, false);
    return *this;
  }

  _TaskRequestAcceptItemDispT& operator=(_TaskRequestAcceptItemPtr pintf)
  {
    TAutoDriver<_TaskRequestAcceptItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TaskRequestAcceptItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TaskRequestAcceptItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _TaskRequestAcceptItemDispT<_TaskRequestAcceptItem> _TaskRequestAcceptItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestDeclineItem
// Interface: _TaskRequestDeclineItem
// *********************************************************************//
template <class T /* _TaskRequestDeclineItem */ >
class TCOM_TaskRequestDeclineItemT : public TComInterface<_TaskRequestDeclineItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_TaskRequestDeclineItemT() {}
  TCOM_TaskRequestDeclineItemT(_TaskRequestDeclineItem *intf, bool addRef = false) : TComInterface<_TaskRequestDeclineItem>(intf, addRef) {}
  TCOM_TaskRequestDeclineItemT(const TCOM_TaskRequestDeclineItemT& src) : TComInterface<_TaskRequestDeclineItem>(src) {}
  TCOM_TaskRequestDeclineItemT& operator=(const TCOM_TaskRequestDeclineItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_TaskRequestDeclineItemT<_TaskRequestDeclineItem> TCOM_TaskRequestDeclineItem;

// *********************************************************************//
// DispIntf:  _TaskRequestDeclineItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063039-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _TaskRequestDeclineItemDispT : public TAutoDriver<_TaskRequestDeclineItem>
{
public:
  _TaskRequestDeclineItemDispT(){}

  _TaskRequestDeclineItemDispT(_TaskRequestDeclineItem *pintf)
  {
    TAutoDriver<_TaskRequestDeclineItem>::Bind(pintf, false);
  }

  _TaskRequestDeclineItemDispT(_TaskRequestDeclineItemPtr pintf)
  {
    TAutoDriver<_TaskRequestDeclineItem>::Bind(pintf, true);
  }

  _TaskRequestDeclineItemDispT& operator=(_TaskRequestDeclineItem *pintf)
  {
    TAutoDriver<_TaskRequestDeclineItem>::Bind(pintf, false);
    return *this;
  }

  _TaskRequestDeclineItemDispT& operator=(_TaskRequestDeclineItemPtr pintf)
  {
    TAutoDriver<_TaskRequestDeclineItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TaskRequestDeclineItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TaskRequestDeclineItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _TaskRequestDeclineItemDispT<_TaskRequestDeclineItem> _TaskRequestDeclineItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestItem
// Interface: _TaskRequestItem
// *********************************************************************//
template <class T /* _TaskRequestItem */ >
class TCOM_TaskRequestItemT : public TComInterface<_TaskRequestItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_TaskRequestItemT() {}
  TCOM_TaskRequestItemT(_TaskRequestItem *intf, bool addRef = false) : TComInterface<_TaskRequestItem>(intf, addRef) {}
  TCOM_TaskRequestItemT(const TCOM_TaskRequestItemT& src) : TComInterface<_TaskRequestItem>(src) {}
  TCOM_TaskRequestItemT& operator=(const TCOM_TaskRequestItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_TaskRequestItemT<_TaskRequestItem> TCOM_TaskRequestItem;

// *********************************************************************//
// DispIntf:  _TaskRequestItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063036-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _TaskRequestItemDispT : public TAutoDriver<_TaskRequestItem>
{
public:
  _TaskRequestItemDispT(){}

  _TaskRequestItemDispT(_TaskRequestItem *pintf)
  {
    TAutoDriver<_TaskRequestItem>::Bind(pintf, false);
  }

  _TaskRequestItemDispT(_TaskRequestItemPtr pintf)
  {
    TAutoDriver<_TaskRequestItem>::Bind(pintf, true);
  }

  _TaskRequestItemDispT& operator=(_TaskRequestItem *pintf)
  {
    TAutoDriver<_TaskRequestItem>::Bind(pintf, false);
    return *this;
  }

  _TaskRequestItemDispT& operator=(_TaskRequestItemPtr pintf)
  {
    TAutoDriver<_TaskRequestItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TaskRequestItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TaskRequestItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _TaskRequestItemDispT<_TaskRequestItem> _TaskRequestItemDisp;

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestUpdateItem
// Interface: _TaskRequestUpdateItem
// *********************************************************************//
template <class T /* _TaskRequestUpdateItem */ >
class TCOM_TaskRequestUpdateItemT : public TComInterface<_TaskRequestUpdateItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_TaskRequestUpdateItemT() {}
  TCOM_TaskRequestUpdateItemT(_TaskRequestUpdateItem *intf, bool addRef = false) : TComInterface<_TaskRequestUpdateItem>(intf, addRef) {}
  TCOM_TaskRequestUpdateItemT(const TCOM_TaskRequestUpdateItemT& src) : TComInterface<_TaskRequestUpdateItem>(src) {}
  TCOM_TaskRequestUpdateItemT& operator=(const TCOM_TaskRequestUpdateItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete(void);
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut(void);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog(void);
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef TCOM_TaskRequestUpdateItemT<_TaskRequestUpdateItem> TCOM_TaskRequestUpdateItem;

// *********************************************************************//
// DispIntf:  _TaskRequestUpdateItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063037-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _TaskRequestUpdateItemDispT : public TAutoDriver<_TaskRequestUpdateItem>
{
public:
  _TaskRequestUpdateItemDispT(){}

  _TaskRequestUpdateItemDispT(_TaskRequestUpdateItem *pintf)
  {
    TAutoDriver<_TaskRequestUpdateItem>::Bind(pintf, false);
  }

  _TaskRequestUpdateItemDispT(_TaskRequestUpdateItemPtr pintf)
  {
    TAutoDriver<_TaskRequestUpdateItem>::Bind(pintf, true);
  }

  _TaskRequestUpdateItemDispT& operator=(_TaskRequestUpdateItem *pintf)
  {
    TAutoDriver<_TaskRequestUpdateItem>::Bind(pintf, false);
    return *this;
  }

  _TaskRequestUpdateItemDispT& operator=(_TaskRequestUpdateItemPtr pintf)
  {
    TAutoDriver<_TaskRequestUpdateItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TaskRequestUpdateItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TaskRequestUpdateItem);
  }

  HRESULT         __fastcall get_Application(Outlook_xp::_Application** Application/*[out,retval]*/);
  Outlook_xp::_ApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/);
  Outlook_xp::OlObjectClass __fastcall get_Class(void);
  HRESULT         __fastcall get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/);
  Outlook_xp::_NameSpacePtr __fastcall get_Session(void);
  HRESULT         __fastcall get_Parent(LPDISPATCH* Parent/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Parent(void);
  HRESULT         __fastcall get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/);
  Outlook_xp::ActionsPtr __fastcall get_Actions(void);
  HRESULT         __fastcall get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/);
  Outlook_xp::AttachmentsPtr __fastcall get_Attachments(void);
  HRESULT         __fastcall get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/);
  BSTR            __fastcall get_BillingInformation(void);
  HRESULT         __fastcall set_BillingInformation(BSTR BillingInformation/*[in]*/);
  HRESULT         __fastcall get_Body(BSTR* Body/*[out,retval]*/);
  BSTR            __fastcall get_Body(void);
  HRESULT         __fastcall set_Body(BSTR Body/*[in]*/);
  HRESULT         __fastcall get_Categories(BSTR* Categories/*[out,retval]*/);
  BSTR            __fastcall get_Categories(void);
  HRESULT         __fastcall set_Categories(BSTR Categories/*[in]*/);
  HRESULT         __fastcall get_Companies(BSTR* Companies/*[out,retval]*/);
  BSTR            __fastcall get_Companies(void);
  HRESULT         __fastcall set_Companies(BSTR Companies/*[in]*/);
  HRESULT         __fastcall get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/);
  BSTR            __fastcall get_ConversationIndex(void);
  HRESULT         __fastcall get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/);
  BSTR            __fastcall get_ConversationTopic(void);
  HRESULT         __fastcall get_CreationTime(DATE* CreationTime/*[out,retval]*/);
  DATE            __fastcall get_CreationTime(void);
  HRESULT         __fastcall get_EntryID(BSTR* EntryID/*[out,retval]*/);
  BSTR            __fastcall get_EntryID(void);
  HRESULT         __fastcall get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/);
  Outlook_xp::FormDescriptionPtr __fastcall get_FormDescription(void);
  HRESULT         __fastcall get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/);
  Outlook_xp::_InspectorPtr __fastcall get_GetInspector(void);
  HRESULT         __fastcall get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/);
  Outlook_xp::OlImportance __fastcall get_Importance(void);
  HRESULT         __fastcall set_Importance(Outlook_xp::OlImportance Importance/*[in]*/);
  HRESULT         __fastcall get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/);
  DATE            __fastcall get_LastModificationTime(void);
  HRESULT         __fastcall get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/);
  LPUNKNOWN       __fastcall get_MAPIOBJECT(void);
  HRESULT         __fastcall get_MessageClass(BSTR* MessageClass/*[out,retval]*/);
  BSTR            __fastcall get_MessageClass(void);
  HRESULT         __fastcall set_MessageClass(BSTR MessageClass/*[in]*/);
  HRESULT         __fastcall get_Mileage(BSTR* Mileage/*[out,retval]*/);
  BSTR            __fastcall get_Mileage(void);
  HRESULT         __fastcall set_Mileage(BSTR Mileage/*[in]*/);
  HRESULT         __fastcall get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_NoAging(void);
  HRESULT         __fastcall set_NoAging(VARIANT_BOOL NoAging/*[in]*/);
  HRESULT         __fastcall get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/);
  long            __fastcall get_OutlookInternalVersion(void);
  HRESULT         __fastcall get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/);
  BSTR            __fastcall get_OutlookVersion(void);
  HRESULT         __fastcall get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Saved(void);
  HRESULT         __fastcall get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/);
  Outlook_xp::OlSensitivity __fastcall get_Sensitivity(void);
  HRESULT         __fastcall set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/);
  HRESULT         __fastcall get_Size(long* Size/*[out,retval]*/);
  long            __fastcall get_Size(void);
  HRESULT         __fastcall get_Subject(BSTR* Subject/*[out,retval]*/);
  BSTR            __fastcall get_Subject(void);
  HRESULT         __fastcall set_Subject(BSTR Subject/*[in]*/);
  HRESULT         __fastcall get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_UnRead(void);
  HRESULT         __fastcall set_UnRead(VARIANT_BOOL UnRead/*[in]*/);
  HRESULT         __fastcall get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/);
  Outlook_xp::UserPropertiesPtr __fastcall get_UserProperties(void);
  HRESULT         __fastcall Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/);
  HRESULT         __fastcall Copy(LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Copy(void);
  HRESULT         __fastcall Delete();
  HRESULT         __fastcall Display(VARIANT Modal/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/);
  LPDISPATCH      __fastcall Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/);
  HRESULT         __fastcall PrintOut();
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                               Outlook_xp::TaskItem** Item/*[out,retval]*/);
  Outlook_xp::TaskItem* __fastcall GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/);
  HRESULT         __fastcall get_Links(Outlook_xp::Links** Links/*[out,retval]*/);
  Outlook_xp::LinksPtr __fastcall get_Links(void);
  HRESULT         __fastcall get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/);
  Outlook_xp::OlDownloadState __fastcall get_DownloadState(void);
  HRESULT         __fastcall ShowCategoriesDialog();
  HRESULT         __fastcall get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/);
  Outlook_xp::ItemPropertiesPtr __fastcall get_ItemProperties(void);
  HRESULT         __fastcall get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/);
  Outlook_xp::OlRemoteStatus __fastcall get_MarkForDownload(void);
  HRESULT         __fastcall set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/);
  HRESULT         __fastcall get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_IsConflict(void);

  __property   Outlook_xp::_ApplicationPtr Application = {read = get_Application};
  __property   Outlook_xp::OlObjectClass Class = {read = get_Class};
  __property   Outlook_xp::_NameSpacePtr Session = {read = get_Session};
  __property   LPDISPATCH      Parent = {read = get_Parent};
  __property   Outlook_xp::ActionsPtr Actions = {read = get_Actions};
  __property   Outlook_xp::AttachmentsPtr Attachments = {read = get_Attachments};
  __property   BSTR            BillingInformation = {read = get_BillingInformation, write = set_BillingInformation};
  __property   BSTR            Body = {read = get_Body, write = set_Body};
  __property   BSTR            Categories = {read = get_Categories, write = set_Categories};
  __property   BSTR            Companies = {read = get_Companies, write = set_Companies};
  __property   BSTR            ConversationIndex = {read = get_ConversationIndex};
  __property   BSTR            ConversationTopic = {read = get_ConversationTopic};
  __property   DATE            CreationTime = {read = get_CreationTime};
  __property   BSTR            EntryID = {read = get_EntryID};
  __property   Outlook_xp::FormDescriptionPtr FormDescription = {read = get_FormDescription};
  __property   Outlook_xp::_InspectorPtr GetInspector = {read = get_GetInspector};
  __property   Outlook_xp::OlImportance Importance = {read = get_Importance, write = set_Importance};
  __property   DATE            LastModificationTime = {read = get_LastModificationTime};
  __property   LPUNKNOWN       MAPIOBJECT = {read = get_MAPIOBJECT};
  __property   BSTR            MessageClass = {read = get_MessageClass, write = set_MessageClass};
  __property   BSTR            Mileage = {read = get_Mileage, write = set_Mileage};
  __property   VARIANT_BOOL    NoAging = {read = get_NoAging, write = set_NoAging};
  __property   long            OutlookInternalVersion = {read = get_OutlookInternalVersion};
  __property   BSTR            OutlookVersion = {read = get_OutlookVersion};
  __property   VARIANT_BOOL    Saved = {read = get_Saved};
  __property   Outlook_xp::OlSensitivity Sensitivity = {read = get_Sensitivity, write = set_Sensitivity};
  __property   long            Size = {read = get_Size};
  __property   BSTR            Subject = {read = get_Subject, write = set_Subject};
  __property   VARIANT_BOOL    UnRead = {read = get_UnRead, write = set_UnRead};
  __property   Outlook_xp::UserPropertiesPtr UserProperties = {read = get_UserProperties};
  __property   Outlook_xp::LinksPtr Links = {read = get_Links};
  __property   Outlook_xp::OlDownloadState DownloadState = {read = get_DownloadState};
  __property   Outlook_xp::ItemPropertiesPtr ItemProperties = {read = get_ItemProperties};
  __property   Outlook_xp::OlRemoteStatus MarkForDownload = {read = get_MarkForDownload, write = set_MarkForDownload};
  __property   VARIANT_BOOL    IsConflict = {read = get_IsConflict};
};
typedef _TaskRequestUpdateItemDispT<_TaskRequestUpdateItem> _TaskRequestUpdateItemDisp;

// *********************************************************************//
// DispIntf:  ApplicationEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300E-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ApplicationEvents_10DispT : public TAutoDriver<ApplicationEvents_10>
{
public:
  ApplicationEvents_10DispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  HRESULT         __fastcall ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/);
  HRESULT         __fastcall NewMail();
  HRESULT         __fastcall Reminder(LPDISPATCH Item/*[in]*/);
  HRESULT         __fastcall OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/);
  HRESULT         __fastcall Startup();
  HRESULT         __fastcall Quit();
  void            __fastcall AdvancedSearchComplete(Outlook_xp::Search* SearchObject/*[in]*/);
  void            __fastcall AdvancedSearchStopped(Outlook_xp::Search* SearchObject/*[in]*/);
  void            __fastcall MAPILogonComplete();

};
typedef ApplicationEvents_10DispT<ApplicationEvents_10> ApplicationEvents_10Disp;

// *********************************************************************//
// DispIntf:  ResultsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006300D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ResultsEventsDispT : public TAutoDriver<ResultsEvents>
{
public:
  ResultsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall ItemAdd(LPDISPATCH Item/*[in]*/);
  void            __fastcall ItemChange(LPDISPATCH Item/*[in]*/);
  void            __fastcall ItemRemove();

};
typedef ResultsEventsDispT<ResultsEvents> ResultsEventsDisp;

// *********************************************************************//
// DispIntf:  _ViewsEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630A5-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class _ViewsEventsDispT : public TAutoDriver<_ViewsEvents>
{
public:
  _ViewsEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall ViewAdd(Outlook_xp::View* View/*[in]*/);
  void            __fastcall ViewRemove(Outlook_xp::View* View/*[in]*/);

};
typedef _ViewsEventsDispT<_ViewsEvents> _ViewsEventsDisp;

// *********************************************************************//
// DispIntf:  ReminderCollectionEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630B2-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T>
class ReminderCollectionEventsDispT : public TAutoDriver<ReminderCollectionEvents>
{
public:
  ReminderCollectionEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  void            __fastcall BeforeReminderShow(VARIANT_BOOL* Cancel/*[in]*/);
  void            __fastcall ReminderAdd(Outlook_xp::_Reminder* ReminderObject/*[in]*/);
  void            __fastcall ReminderChange(Outlook_xp::_Reminder* ReminderObject/*[in]*/);
  void            __fastcall ReminderFire(Outlook_xp::_Reminder* ReminderObject/*[in]*/);
  void            __fastcall ReminderRemove();
  void            __fastcall Snooze(Outlook_xp::_Reminder* ReminderObject/*[in]*/);

};
typedef ReminderCollectionEventsDispT<ReminderCollectionEvents> ReminderCollectionEventsDisp;

// *********************************************************************//
// DispIntf:  _IRecipientControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {D87E7E16-6897-11CE-A6C0-00AA00608FAA}
// *********************************************************************//
template<class T>
class _IRecipientControlDispT : public TAutoDriver<_IRecipientControl>
{
public:
  _IRecipientControlDispT(){}

  _IRecipientControlDispT(_IRecipientControl *pintf)
  {
    TAutoDriver<_IRecipientControl>::Bind(pintf, false);
  }

  _IRecipientControlDispT(_IRecipientControlPtr pintf)
  {
    TAutoDriver<_IRecipientControl>::Bind(pintf, true);
  }

  _IRecipientControlDispT& operator=(_IRecipientControl *pintf)
  {
    TAutoDriver<_IRecipientControl>::Bind(pintf, false);
    return *this;
  }

  _IRecipientControlDispT& operator=(_IRecipientControlPtr pintf)
  {
    TAutoDriver<_IRecipientControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Enabled(VARIANT_BOOL* Enabled/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_Enabled(void);
  HRESULT         __fastcall set_Enabled(VARIANT_BOOL Enabled/*[in]*/);
  HRESULT         __fastcall get_BackColor(long* BackColor/*[out,retval]*/);
  long            __fastcall get_BackColor(void);
  HRESULT         __fastcall set_BackColor(long BackColor/*[in]*/);
  HRESULT         __fastcall get_ForeColor(long* ForeColor/*[out,retval]*/);
  long            __fastcall get_ForeColor(void);
  HRESULT         __fastcall set_ForeColor(long ForeColor/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(VARIANT_BOOL* ReadOnly/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(VARIANT_BOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall get_Font(LPDISPATCH* Font/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Font(void);
  HRESULT         __fastcall set_Font(LPDISPATCH Font/*[in]*/);
  HRESULT         __fastcall get_SpecialEffect(long* Effect/*[out,retval]*/);
  long            __fastcall get_SpecialEffect(void);
  HRESULT         __fastcall set_SpecialEffect(long Effect/*[in]*/);

  __property   VARIANT_BOOL    Enabled = {read = get_Enabled, write = set_Enabled};
  __property   long            BackColor = {read = get_BackColor, write = set_BackColor};
  __property   long            ForeColor = {read = get_ForeColor, write = set_ForeColor};
  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   LPDISPATCH      Font = {read = get_Font, write = set_Font};
  __property   long            SpecialEffect = {read = get_SpecialEffect, write = set_SpecialEffect};
};
typedef _IRecipientControlDispT<_IRecipientControl> _IRecipientControlDisp;

// *********************************************************************//
// DispIntf:  _DRecipientControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F025-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DRecipientControlDispT : public TAutoDriver<_DRecipientControl>
{
public:
  _DRecipientControlDispT(){}

  _DRecipientControlDispT(_DRecipientControl *pintf)
  {
    TAutoDriver<_DRecipientControl>::Bind(pintf, false);
  }

  _DRecipientControlDispT(_DRecipientControlPtr pintf)
  {
    TAutoDriver<_DRecipientControl>::Bind(pintf, true);
  }

  _DRecipientControlDispT& operator=(_DRecipientControl *pintf)
  {
    TAutoDriver<_DRecipientControl>::Bind(pintf, false);
    return *this;
  }

  _DRecipientControlDispT& operator=(_DRecipientControlPtr pintf)
  {
    TAutoDriver<_DRecipientControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__RecipientControl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__RecipientControl);
  }

  VARIANT_BOOL    __fastcall get_Enabled();
  void            __fastcall set_Enabled(VARIANT_BOOL Param1/*[in]*/);
  long            __fastcall get_BackColor();
  void            __fastcall set_BackColor(long Param1/*[in]*/);
  long            __fastcall get_ForeColor();
  void            __fastcall set_ForeColor(long Param1/*[in]*/);
  VARIANT_BOOL    __fastcall get_ReadOnly();
  void            __fastcall set_ReadOnly(VARIANT_BOOL Param1/*[in]*/);
  LPDISPATCH      __fastcall get_Font();
  void            __fastcall set_Font(LPDISPATCH Param1/*[in]*/);
  long            __fastcall get_SpecialEffect();
  void            __fastcall set_SpecialEffect(long Param1/*[in]*/);

  __property   VARIANT_BOOL    Enabled = {read = get_Enabled, write = set_Enabled};
  __property   long            BackColor = {read = get_BackColor, write = set_BackColor};
  __property   long            ForeColor = {read = get_ForeColor, write = set_ForeColor};
  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   LPDISPATCH      Font = {read = get_Font, write = set_Font};
  __property   long            SpecialEffect = {read = get_SpecialEffect, write = set_SpecialEffect};
};
typedef _DRecipientControlDispT<_DRecipientControl> _DRecipientControlDisp;

// *********************************************************************//
// DispIntf:  _DRecipientControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {D87E7E17-6897-11CE-A6C0-00AA00608FAA}
// *********************************************************************//
template <class T>
class _DRecipientControlEventsDispT : public TAutoDriver<_DRecipientControlEvents>
{
public:
  _DRecipientControlEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }


};
typedef _DRecipientControlEventsDispT<_DRecipientControlEvents> _DRecipientControlEventsDisp;

// *********************************************************************//
// DispIntf:  _IDocSiteControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {43507DD0-811D-11CE-B565-00AA00608FAA}
// *********************************************************************//
template<class T>
class _IDocSiteControlDispT : public TAutoDriver<_IDocSiteControl>
{
public:
  _IDocSiteControlDispT(){}

  _IDocSiteControlDispT(_IDocSiteControl *pintf)
  {
    TAutoDriver<_IDocSiteControl>::Bind(pintf, false);
  }

  _IDocSiteControlDispT(_IDocSiteControlPtr pintf)
  {
    TAutoDriver<_IDocSiteControl>::Bind(pintf, true);
  }

  _IDocSiteControlDispT& operator=(_IDocSiteControl *pintf)
  {
    TAutoDriver<_IDocSiteControl>::Bind(pintf, false);
    return *this;
  }

  _IDocSiteControlDispT& operator=(_IDocSiteControlPtr pintf)
  {
    TAutoDriver<_IDocSiteControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ReadOnly(VARIANT_BOOL* ReadOnly/*[out,retval]*/);
  VARIANT_BOOL    __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(VARIANT_BOOL ReadOnly/*[in]*/);

  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
};
typedef _IDocSiteControlDispT<_IDocSiteControl> _IDocSiteControlDisp;

// *********************************************************************//
// DispIntf:  _DDocSiteControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F026-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DDocSiteControlDispT : public TAutoDriver<_DDocSiteControl>
{
public:
  _DDocSiteControlDispT(){}

  _DDocSiteControlDispT(_DDocSiteControl *pintf)
  {
    TAutoDriver<_DDocSiteControl>::Bind(pintf, false);
  }

  _DDocSiteControlDispT(_DDocSiteControlPtr pintf)
  {
    TAutoDriver<_DDocSiteControl>::Bind(pintf, true);
  }

  _DDocSiteControlDispT& operator=(_DDocSiteControl *pintf)
  {
    TAutoDriver<_DDocSiteControl>::Bind(pintf, false);
    return *this;
  }

  _DDocSiteControlDispT& operator=(_DDocSiteControlPtr pintf)
  {
    TAutoDriver<_DDocSiteControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__DocSiteControl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__DocSiteControl);
  }

  VARIANT_BOOL    __fastcall get_ReadOnly();
  void            __fastcall set_ReadOnly(VARIANT_BOOL Param1/*[in]*/);

  __property   VARIANT_BOOL    ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
};
typedef _DDocSiteControlDispT<_DDocSiteControl> _DDocSiteControlDisp;

// *********************************************************************//
// DispIntf:  _DDocSiteControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {50BB9B50-811D-11CE-B565-00AA00608FAA}
// *********************************************************************//
template <class T>
class _DDocSiteControlEventsDispT : public TAutoDriver<_DDocSiteControlEvents>
{
public:
  _DDocSiteControlEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }


};
typedef _DDocSiteControlEventsDispT<_DDocSiteControlEvents> _DDocSiteControlEventsDisp;

// *********************************************************************//
// SmartIntf: TCOM_IDpxCtrl
// Interface: _IDpxCtrl
// *********************************************************************//
template <class T /* _IDpxCtrl */ >
class TCOM_IDpxCtrlT : public TComInterface<_IDpxCtrl>, public TComInterfaceBase<IUnknown>
{
public:
  TCOM_IDpxCtrlT() {}
  TCOM_IDpxCtrlT(_IDpxCtrl *intf, bool addRef = false) : TComInterface<_IDpxCtrl>(intf, addRef) {}
  TCOM_IDpxCtrlT(const TCOM_IDpxCtrlT& src) : TComInterface<_IDpxCtrl>(src) {}
  TCOM_IDpxCtrlT& operator=(const TCOM_IDpxCtrlT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_StartDate(long* plStartDate/*[out,retval]*/);
  long            __fastcall get_StartDate(void);
  HRESULT         __fastcall set_StartDate(long plStartDate/*[in]*/);
  HRESULT         __fastcall get_EndDate(long* plEndDate/*[out,retval]*/);
  long            __fastcall get_EndDate(void);
  HRESULT         __fastcall set_EndDate(long plEndDate/*[in]*/);

  __property   long            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   long            EndDate = {read = get_EndDate, write = set_EndDate};
};
typedef TCOM_IDpxCtrlT<_IDpxCtrl> TCOM_IDpxCtrl;

// *********************************************************************//
// DispIntf:  _IDpxCtrl
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {0006F097-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _IDpxCtrlDispT : public TAutoDriver<_IDpxCtrl>
{
public:
  _IDpxCtrlDispT(){}

  _IDpxCtrlDispT(_IDpxCtrl *pintf)
  {
    TAutoDriver<_IDpxCtrl>::Bind(pintf, false);
  }

  _IDpxCtrlDispT(_IDpxCtrlPtr pintf)
  {
    TAutoDriver<_IDpxCtrl>::Bind(pintf, true);
  }

  _IDpxCtrlDispT& operator=(_IDpxCtrl *pintf)
  {
    TAutoDriver<_IDpxCtrl>::Bind(pintf, false);
    return *this;
  }

  _IDpxCtrlDispT& operator=(_IDpxCtrlPtr pintf)
  {
    TAutoDriver<_IDpxCtrl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__DpxCtrl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__DpxCtrl);
  }

  HRESULT         __fastcall get_StartDate(long* plStartDate/*[out,retval]*/);
  long            __fastcall get_StartDate(void);
  HRESULT         __fastcall set_StartDate(long plStartDate/*[in]*/);
  HRESULT         __fastcall get_EndDate(long* plEndDate/*[out,retval]*/);
  long            __fastcall get_EndDate(void);
  HRESULT         __fastcall set_EndDate(long plEndDate/*[in]*/);

  __property   long            StartDate = {read = get_StartDate, write = set_StartDate};
  __property   long            EndDate = {read = get_EndDate, write = set_EndDate};
};
typedef _IDpxCtrlDispT<_IDpxCtrl> _IDpxCtrlDisp;

// *********************************************************************//
// DispIntf:  _IPageWrapCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {494F0970-DD96-11D2-AF70-006008AFF117}
// *********************************************************************//
template<class T>
class _IPageWrapCtrlDispT : public TAutoDriver<_IPageWrapCtrl>
{
public:
  _IPageWrapCtrlDispT(){}

  _IPageWrapCtrlDispT(_IPageWrapCtrl *pintf)
  {
    TAutoDriver<_IPageWrapCtrl>::Bind(pintf, false);
  }

  _IPageWrapCtrlDispT(_IPageWrapCtrlPtr pintf)
  {
    TAutoDriver<_IPageWrapCtrl>::Bind(pintf, true);
  }

  _IPageWrapCtrlDispT& operator=(_IPageWrapCtrl *pintf)
  {
    TAutoDriver<_IPageWrapCtrl>::Bind(pintf, false);
    return *this;
  }

  _IPageWrapCtrlDispT& operator=(_IPageWrapCtrlPtr pintf)
  {
    TAutoDriver<_IPageWrapCtrl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_BackColor(unsigned_long* pcolorRef/*[out,retval]*/);
  unsigned_long   __fastcall get_BackColor(void);
  HRESULT         __fastcall set_BackColor(unsigned_long pcolorRef/*[in]*/);

  __property   unsigned_long   BackColor = {read = get_BackColor, write = set_BackColor};
};
typedef _IPageWrapCtrlDispT<_IPageWrapCtrl> _IPageWrapCtrlDisp;

// *********************************************************************//
// DispIntf:  _DPageWrapCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F096-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DPageWrapCtrlDispT : public TAutoDriver<_DPageWrapCtrl>
{
public:
  _DPageWrapCtrlDispT(){}

  _DPageWrapCtrlDispT(_DPageWrapCtrl *pintf)
  {
    TAutoDriver<_DPageWrapCtrl>::Bind(pintf, false);
  }

  _DPageWrapCtrlDispT(_DPageWrapCtrlPtr pintf)
  {
    TAutoDriver<_DPageWrapCtrl>::Bind(pintf, true);
  }

  _DPageWrapCtrlDispT& operator=(_DPageWrapCtrl *pintf)
  {
    TAutoDriver<_DPageWrapCtrl>::Bind(pintf, false);
    return *this;
  }

  _DPageWrapCtrlDispT& operator=(_DPageWrapCtrlPtr pintf)
  {
    TAutoDriver<_DPageWrapCtrl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__PageWrapCtrl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__PageWrapCtrl);
  }

  unsigned_long   __fastcall get_BackColor();
  void            __fastcall set_BackColor(unsigned_long Param1/*[in]*/);

  __property   unsigned_long   BackColor = {read = get_BackColor, write = set_BackColor};
};
typedef _DPageWrapCtrlDispT<_DPageWrapCtrl> _DPageWrapCtrlDisp;

// *********************************************************************//
// DispIntf:  _DPageWrapCtrlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {494F0971-DD96-11D2-AF70-006008AFF117}
// *********************************************************************//
template <class T>
class _DPageWrapCtrlEventsDispT : public TAutoDriver<_DPageWrapCtrlEvents>
{
public:
  _DPageWrapCtrlEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }


};
typedef _DPageWrapCtrlEventsDispT<_DPageWrapCtrlEvents> _DPageWrapCtrlEventsDisp;

// *********************************************************************//
// DispIntf:  _IInspectorCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {E182A127-EADD-46E1-B878-482C48CD8754}
// *********************************************************************//
template<class T>
class _IInspectorCtrlDispT : public TAutoDriver<_IInspectorCtrl>
{
public:
  _IInspectorCtrlDispT(){}

  _IInspectorCtrlDispT(_IInspectorCtrl *pintf)
  {
    TAutoDriver<_IInspectorCtrl>::Bind(pintf, false);
  }

  _IInspectorCtrlDispT(_IInspectorCtrlPtr pintf)
  {
    TAutoDriver<_IInspectorCtrl>::Bind(pintf, true);
  }

  _IInspectorCtrlDispT& operator=(_IInspectorCtrl *pintf)
  {
    TAutoDriver<_IInspectorCtrl>::Bind(pintf, false);
    return *this;
  }

  _IInspectorCtrlDispT& operator=(_IInspectorCtrlPtr pintf)
  {
    TAutoDriver<_IInspectorCtrl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_URL(BSTR* ppwzURL/*[out,retval]*/);
  BSTR            __fastcall get_URL(void);
  HRESULT         __fastcall set_URL(BSTR ppwzURL/*[in]*/);
  HRESULT         __fastcall get_Item(LPDISPATCH* ppdisp/*[out,retval]*/);
  LPDISPATCH      __fastcall get_Item(void);
  HRESULT         __fastcall OnItemChange(LPDISPATCH pdispItem/*[in]*/);

  __property   BSTR            URL = {read = get_URL, write = set_URL};
  __property   LPDISPATCH      Item = {read = get_Item};
};
typedef _IInspectorCtrlDispT<_IInspectorCtrl> _IInspectorCtrlDisp;

// *********************************************************************//
// DispIntf:  _DInspectorCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F09D-0000-0000-C000-000000000046}
// *********************************************************************//
template<class T>
class _DInspectorCtrlDispT : public TAutoDriver<_DInspectorCtrl>
{
public:
  _DInspectorCtrlDispT(){}

  _DInspectorCtrlDispT(_DInspectorCtrl *pintf)
  {
    TAutoDriver<_DInspectorCtrl>::Bind(pintf, false);
  }

  _DInspectorCtrlDispT(_DInspectorCtrlPtr pintf)
  {
    TAutoDriver<_DInspectorCtrl>::Bind(pintf, true);
  }

  _DInspectorCtrlDispT& operator=(_DInspectorCtrl *pintf)
  {
    TAutoDriver<_DInspectorCtrl>::Bind(pintf, false);
    return *this;
  }

  _DInspectorCtrlDispT& operator=(_DInspectorCtrlPtr pintf)
  {
    TAutoDriver<_DInspectorCtrl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__InspectorCtrl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__InspectorCtrl);
  }

  BSTR            __fastcall get_URL();
  void            __fastcall set_URL(BSTR Param1/*[in]*/);
  LPDISPATCH      __fastcall get_Item();
  void            __fastcall OnItemChange(LPDISPATCH pdispItem/*[in]*/);

  __property   BSTR            URL = {read = get_URL, write = set_URL};
  __property   LPDISPATCH      Item = {read = get_Item};
};
typedef _DInspectorCtrlDispT<_DInspectorCtrl> _DInspectorCtrlDisp;

// *********************************************************************//
// DispIntf:  _DInspectorEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {2D9C6D57-BD3C-4275-BED2-73F0EDC18CCE}
// *********************************************************************//
template <class T>
class _DInspectorEventsDispT : public TAutoDriver<_DInspectorEvents>
{
public:
  _DInspectorEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }


};
typedef _DInspectorEventsDispT<_DInspectorEvents> _DInspectorEventsDisp;

// *********************************************************************//
// DispIntf:  DDataSourceObject
// Flags:     (4112) Hidden Dispatchable
// GUID:      {11858B51-DE06-494E-915A-6CCEF17F7CB6}
// *********************************************************************//
template<class T>
class DDataSourceObjectDispT : public TAutoDriver<DDataSourceObject>
{
public:
  DDataSourceObjectDispT(){}

  DDataSourceObjectDispT(DDataSourceObject *pintf)
  {
    TAutoDriver<DDataSourceObject>::Bind(pintf, false);
  }

  DDataSourceObjectDispT(DDataSourceObjectPtr pintf)
  {
    TAutoDriver<DDataSourceObject>::Bind(pintf, true);
  }

  DDataSourceObjectDispT& operator=(DDataSourceObject *pintf)
  {
    TAutoDriver<DDataSourceObject>::Bind(pintf, false);
    return *this;
  }

  DDataSourceObjectDispT& operator=(DDataSourceObjectPtr pintf)
  {
    TAutoDriver<DDataSourceObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DataSourceObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DataSourceObject);
  }

  void            __fastcall set_OutlookItem(LPDISPATCH Value);
  LPDISPATCH      __fastcall get_OutlookItem();

  __property   LPDISPATCH      OutlookItem = {read = get_OutlookItem, write = set_OutlookItem};
};
typedef DDataSourceObjectDispT<DDataSourceObject> DDataSourceObjectDisp;

// *********************************************************************//
// DispIntf:  Action
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063043-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ActionDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ActionDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ActionDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ActionDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ActionDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_CopyLike(Outlook_xp::OlActionCopyLike* CopyLike/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyLike"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)CopyLike /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlActionCopyLike __fastcall
ActionDispT<T>::get_CopyLike(void)
{
  Outlook_xp::OlActionCopyLike CopyLike;
  this->get_CopyLike((Outlook_xp::OlActionCopyLike*)&CopyLike);
  return CopyLike;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_CopyLike(Outlook_xp::OlActionCopyLike CopyLike/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyLike"), DISPID(100));
  TAutoArgs<1> _args;
  _args[1] = (int)CopyLike /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Enabled(VARIANT_BOOL* Enabled/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enabled"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Enabled /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
ActionDispT<T>::get_Enabled(void)
{
  VARIANT_BOOL Enabled;
  this->get_Enabled((VARIANT_BOOL*)&Enabled);
  return Enabled;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_Enabled(VARIANT_BOOL Enabled/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enabled"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Enabled /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ActionDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ActionDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_Prefix(BSTR* Prefix/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Prefix"), DISPID(61));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Prefix /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ActionDispT<T>::get_Prefix(void)
{
  BSTR Prefix;
  this->get_Prefix((BSTR*)&Prefix);
  return Prefix;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_Prefix(BSTR Prefix/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Prefix"), DISPID(61));
  TAutoArgs<1> _args;
  _args[1] = Prefix /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_ReplyStyle(Outlook_xp::OlActionReplyStyle* ReplyStyle/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyStyle"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ReplyStyle /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlActionReplyStyle __fastcall
ActionDispT<T>::get_ReplyStyle(void)
{
  Outlook_xp::OlActionReplyStyle ReplyStyle;
  this->get_ReplyStyle((Outlook_xp::OlActionReplyStyle*)&ReplyStyle);
  return ReplyStyle;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_ReplyStyle(Outlook_xp::OlActionReplyStyle ReplyStyle/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyStyle"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (int)ReplyStyle /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_ResponseStyle(Outlook_xp::OlActionResponseStyle* ResponseStyle/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseStyle"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ResponseStyle /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlActionResponseStyle __fastcall
ActionDispT<T>::get_ResponseStyle(void)
{
  Outlook_xp::OlActionResponseStyle ResponseStyle;
  this->get_ResponseStyle((Outlook_xp::OlActionResponseStyle*)&ResponseStyle);
  return ResponseStyle;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_ResponseStyle(Outlook_xp::OlActionResponseStyle ResponseStyle/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseStyle"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = (int)ResponseStyle /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::get_ShowOn(Outlook_xp::OlActionShowOn* ShowOn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowOn"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ShowOn /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlActionShowOn __fastcall
ActionDispT<T>::get_ShowOn(void)
{
  Outlook_xp::OlActionShowOn ShowOn;
  this->get_ShowOn((Outlook_xp::OlActionShowOn*)&ShowOn);
  return ShowOn;
}

template <class T> HRESULT __fastcall
ActionDispT<T>::set_ShowOn(Outlook_xp::OlActionShowOn ShowOn/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowOn"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = (int)ShowOn /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(108));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ActionDispT<T>::Execute(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ActionDispT<T>::Execute(void)
{
  LPDISPATCH Item;
  this->Execute((LPDISPATCH*)&Item);
  return Item;
}

// *********************************************************************//
// SmartIntf: TCOM_Application
// Interface: _Application
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ApplicationT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ApplicationT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ApplicationT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Assistant(Office_xp::Assistant** Assistant/*[out,retval]*/)
{
  return (*this)->get_Assistant(Assistant);
}

template <class T> Office_xp::AssistantPtr __fastcall
TCOM_ApplicationT<T>::get_Assistant(void)
{
  Office_xp::AssistantPtr Assistant;
  OLECHECK(this->get_Assistant((Office_xp::AssistantPtr*)&Assistant));
  return Assistant;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  return (*this)->get_Name(Name);
}

template <class T> BSTR __fastcall
TCOM_ApplicationT<T>::get_Name(void)
{
  BSTR Name = 0;
  OLECHECK(this->get_Name((BSTR*)&Name));
  return Name;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Version(BSTR* Version/*[out,retval]*/)
{
  return (*this)->get_Version(Version);
}

template <class T> BSTR __fastcall
TCOM_ApplicationT<T>::get_Version(void)
{
  BSTR Version = 0;
  OLECHECK(this->get_Version((BSTR*)&Version));
  return Version;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::ActiveExplorer(Outlook_xp::_Explorer** ActiveExplorer/*[out,retval]*/)
{
  return (*this)->ActiveExplorer(ActiveExplorer);
}

template <class T> Outlook_xp::_Explorer* __fastcall
TCOM_ApplicationT<T>::ActiveExplorer(void)
{
  Outlook_xp::_Explorer* ActiveExplorer;
  OLECHECK(this->ActiveExplorer((Outlook_xp::_Explorer**)&ActiveExplorer));
  return ActiveExplorer;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::ActiveInspector(Outlook_xp::_Inspector** ActiveInspector/*[out,retval]*/)
{
  return (*this)->ActiveInspector(ActiveInspector);
}

template <class T> Outlook_xp::_Inspector* __fastcall
TCOM_ApplicationT<T>::ActiveInspector(void)
{
  Outlook_xp::_Inspector* ActiveInspector;
  OLECHECK(this->ActiveInspector((Outlook_xp::_Inspector**)&ActiveInspector));
  return ActiveInspector;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/, 
                                 LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->CreateItem(ItemType, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->CreateItem(ItemType/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, VARIANT InFolder/*[in,opt]*/, 
                                             LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->CreateItemFromTemplate(TemplatePath, InFolder, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, VARIANT InFolder/*[in,opt]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->CreateItemFromTemplate(TemplatePath/*[in]*/, InFolder/*[in,opt]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::CreateObject(BSTR ObjectName/*[in]*/, LPDISPATCH* Object/*[out,retval]*/)
{
  return (*this)->CreateObject(ObjectName, Object);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::CreateObject(BSTR ObjectName/*[in]*/)
{
  LPDISPATCH Object;
  OLECHECK(this->CreateObject(ObjectName/*[in]*/, (LPDISPATCH*)&Object));
  return Object;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::GetNamespace(BSTR Type/*[in]*/, 
                                   Outlook_xp::_NameSpace** NameSpace/*[out,retval]*/)
{
  return (*this)->GetNamespace(Type, NameSpace);
}

template <class T> Outlook_xp::_NameSpace* __fastcall
TCOM_ApplicationT<T>::GetNamespace(BSTR Type/*[in]*/)
{
  Outlook_xp::_NameSpace* NameSpace;
  OLECHECK(this->GetNamespace(Type/*[in]*/, (Outlook_xp::_NameSpace**)&NameSpace));
  return NameSpace;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::Quit(void)
{
  return (*this)->Quit();
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_COMAddIns(Office_xp::COMAddIns** COMAddIns/*[out,retval]*/)
{
  return (*this)->get_COMAddIns(COMAddIns);
}

template <class T> Office_xp::COMAddInsPtr __fastcall
TCOM_ApplicationT<T>::get_COMAddIns(void)
{
  Office_xp::COMAddInsPtr COMAddIns;
  OLECHECK(this->get_COMAddIns((Office_xp::COMAddInsPtr*)&COMAddIns));
  return COMAddIns;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Explorers(Outlook_xp::_Explorers** Explorers/*[out,retval]*/)
{
  return (*this)->get_Explorers(Explorers);
}

template <class T> Outlook_xp::_ExplorersPtr __fastcall
TCOM_ApplicationT<T>::get_Explorers(void)
{
  Outlook_xp::_ExplorersPtr Explorers;
  OLECHECK(this->get_Explorers((Outlook_xp::_ExplorersPtr*)&Explorers));
  return Explorers;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Inspectors(Outlook_xp::_Inspectors** Inspectors/*[out,retval]*/)
{
  return (*this)->get_Inspectors(Inspectors);
}

template <class T> Outlook_xp::_InspectorsPtr __fastcall
TCOM_ApplicationT<T>::get_Inspectors(void)
{
  Outlook_xp::_InspectorsPtr Inspectors;
  OLECHECK(this->get_Inspectors((Outlook_xp::_InspectorsPtr*)&Inspectors));
  return Inspectors;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_LanguageSettings(Office_xp::LanguageSettings** LanguageSettings/*[out,retval]*/)
{
  return (*this)->get_LanguageSettings(LanguageSettings);
}

template <class T> Office_xp::LanguageSettingsPtr __fastcall
TCOM_ApplicationT<T>::get_LanguageSettings(void)
{
  Office_xp::LanguageSettingsPtr LanguageSettings;
  OLECHECK(this->get_LanguageSettings((Office_xp::LanguageSettingsPtr*)&LanguageSettings));
  return LanguageSettings;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_ProductCode(BSTR* ProductCode/*[out,retval]*/)
{
  return (*this)->get_ProductCode(ProductCode);
}

template <class T> BSTR __fastcall
TCOM_ApplicationT<T>::get_ProductCode(void)
{
  BSTR ProductCode = 0;
  OLECHECK(this->get_ProductCode((BSTR*)&ProductCode));
  return ProductCode;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_AnswerWizard(Office_xp::AnswerWizard** AnswerWizard/*[out,retval]*/)
{
  return (*this)->get_AnswerWizard(AnswerWizard);
}

template <class T> Office_xp::AnswerWizardPtr __fastcall
TCOM_ApplicationT<T>::get_AnswerWizard(void)
{
  Office_xp::AnswerWizardPtr AnswerWizard;
  OLECHECK(this->get_AnswerWizard((Office_xp::AnswerWizardPtr*)&AnswerWizard));
  return AnswerWizard;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_FeatureInstall(Office_xp::MsoFeatureInstall* FeatureInstall/*[out,retval]*/)
{
  return (*this)->get_FeatureInstall(FeatureInstall);
}

template <class T> Office_xp::MsoFeatureInstall __fastcall
TCOM_ApplicationT<T>::get_FeatureInstall(void)
{
  Office_xp::MsoFeatureInstall FeatureInstall;
  OLECHECK(this->get_FeatureInstall((Office_xp::MsoFeatureInstall*)&FeatureInstall));
  return FeatureInstall;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::set_FeatureInstall(Office_xp::MsoFeatureInstall FeatureInstall/*[in]*/)
{
  return (*this)->set_FeatureInstall(FeatureInstall);
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::ActiveWindow(LPDISPATCH* ActiveWindow/*[out,retval]*/)
{
  return (*this)->ActiveWindow(ActiveWindow);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::ActiveWindow(void)
{
  LPDISPATCH ActiveWindow;
  OLECHECK(this->ActiveWindow((LPDISPATCH*)&ActiveWindow));
  return ActiveWindow;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/, 
                               LPDISPATCH* DocItem/*[out,retval]*/)
{
  return (*this)->CopyFile(FilePath, DestFolderPath, DocItem);
}

template <class T> LPDISPATCH __fastcall
TCOM_ApplicationT<T>::CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/)
{
  LPDISPATCH DocItem;
  OLECHECK(this->CopyFile(FilePath/*[in]*/, DestFolderPath/*[in]*/, (LPDISPATCH*)&DocItem));
  return DocItem;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                     VARIANT SearchSubFolders/*[in,opt]*/, VARIANT Tag/*[in,opt]*/, 
                                     Outlook_xp::Search** AdvancedSearch/*[out,retval]*/)
{
  return (*this)->AdvancedSearch(Scope, Filter, SearchSubFolders, Tag, AdvancedSearch);
}

template <class T> Outlook_xp::Search* __fastcall
TCOM_ApplicationT<T>::AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                     VARIANT SearchSubFolders/*[in,opt]*/, VARIANT Tag/*[in,opt]*/)
{
  Outlook_xp::Search* AdvancedSearch;
  OLECHECK(this->AdvancedSearch(Scope/*[in]*/, Filter/*[in,opt]*/, SearchSubFolders/*[in,opt]*/, 
                                Tag/*[in,opt]*/, (Outlook_xp::Search**)&AdvancedSearch));
  return AdvancedSearch;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::IsSearchSynchronous(BSTR LookInFolders/*[in]*/, 
                                          VARIANT_BOOL* IsSearchSynchronous/*[out,retval]*/)
{
  return (*this)->IsSearchSynchronous(LookInFolders, IsSearchSynchronous);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ApplicationT<T>::IsSearchSynchronous(BSTR LookInFolders/*[in]*/)
{
  VARIANT_BOOL IsSearchSynchronous;
  OLECHECK(this->IsSearchSynchronous(LookInFolders/*[in]*/, (VARIANT_BOOL*)&IsSearchSynchronous));
  return IsSearchSynchronous;
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::GetNewNickNames(VARIANT* pvar/*[in]*/)
{
  return (*this)->GetNewNickNames(pvar);
}

template <class T> HRESULT __fastcall
TCOM_ApplicationT<T>::get_Reminders(Outlook_xp::_Reminders** Reminders/*[out,retval]*/)
{
  return (*this)->get_Reminders(Reminders);
}

template <class T> Outlook_xp::_RemindersPtr __fastcall
TCOM_ApplicationT<T>::get_Reminders(void)
{
  Outlook_xp::_RemindersPtr Reminders;
  OLECHECK(this->get_Reminders((Outlook_xp::_RemindersPtr*)&Reminders));
  return Reminders;
}

// *********************************************************************//
// DispIntf:  _Application
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063001-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ApplicationDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ApplicationDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ApplicationDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Assistant(Office_xp::Assistant** Assistant/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Assistant"), DISPID(276));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::Assistant**)Assistant /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::AssistantPtr __fastcall
_ApplicationDispT<T>::get_Assistant(void)
{
  Office_xp::AssistantPtr Assistant;
  this->get_Assistant(&Assistant);
  return Assistant;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ApplicationDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Version(BSTR* Version/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(278));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Version /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ApplicationDispT<T>::get_Version(void)
{
  BSTR Version;
  this->get_Version((BSTR*)&Version);
  return Version;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::ActiveExplorer(Outlook_xp::_Explorer** ActiveExplorer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveExplorer"), DISPID(273));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Explorer**)ActiveExplorer /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Explorer* __fastcall
_ApplicationDispT<T>::ActiveExplorer(void)
{
  Outlook_xp::_Explorer* ActiveExplorer;
  this->ActiveExplorer((Outlook_xp::_Explorer**)&ActiveExplorer);
  return ActiveExplorer;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::ActiveInspector(Outlook_xp::_Inspector** ActiveInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveInspector"), DISPID(274));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)ActiveInspector /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Inspector* __fastcall
_ApplicationDispT<T>::ActiveInspector(void)
{
  Outlook_xp::_Inspector* ActiveInspector;
  this->ActiveInspector((Outlook_xp::_Inspector**)&ActiveInspector);
  return ActiveInspector;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/, 
                                 LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateItem"), DISPID(266));
  TAutoArgs<1> _args;
  _args[1] = (int)ItemType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::CreateItem(Outlook_xp::OlItemType ItemType/*[in]*/)
{
  LPDISPATCH Item;
  this->CreateItem(ItemType, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, VARIANT InFolder/*[in,opt]*/
                                             , LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateItemFromTemplate"), DISPID(267));
  TAutoArgs<2> _args;
  _args[1] = TemplatePath /*[VT_BSTR:0]*/;
  _args[2] = InFolder /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::CreateItemFromTemplate(BSTR TemplatePath/*[in]*/, VARIANT InFolder/*[in,opt]*/)
{
  LPDISPATCH Item;
  this->CreateItemFromTemplate(TemplatePath, InFolder, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::CreateObject(BSTR ObjectName/*[in]*/, LPDISPATCH* Object/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObject"), DISPID(277));
  TAutoArgs<1> _args;
  _args[1] = ObjectName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Object /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::CreateObject(BSTR ObjectName/*[in]*/)
{
  LPDISPATCH Object;
  this->CreateObject(ObjectName, (LPDISPATCH*)&Object);
  return Object;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::GetNamespace(BSTR Type/*[in]*/, 
                                   Outlook_xp::_NameSpace** NameSpace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNamespace"), DISPID(272));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)NameSpace /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpace* __fastcall
_ApplicationDispT<T>::GetNamespace(BSTR Type/*[in]*/)
{
  Outlook_xp::_NameSpace* NameSpace;
  this->GetNamespace(Type, (Outlook_xp::_NameSpace**)&NameSpace);
  return NameSpace;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::Quit()
{
  _TDispID _dispid(*this, OLETEXT("Quit"), DISPID(275));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_COMAddIns(Office_xp::COMAddIns** COMAddIns/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("COMAddIns"), DISPID(280));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::COMAddIns**)COMAddIns /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::COMAddInsPtr __fastcall
_ApplicationDispT<T>::get_COMAddIns(void)
{
  Office_xp::COMAddInsPtr COMAddIns;
  this->get_COMAddIns(&COMAddIns);
  return COMAddIns;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Explorers(Outlook_xp::_Explorers** Explorers/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Explorers"), DISPID(281));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Explorers**)Explorers /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ExplorersPtr __fastcall
_ApplicationDispT<T>::get_Explorers(void)
{
  Outlook_xp::_ExplorersPtr Explorers;
  this->get_Explorers(&Explorers);
  return Explorers;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Inspectors(Outlook_xp::_Inspectors** Inspectors/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Inspectors"), DISPID(282));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspectors**)Inspectors /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorsPtr __fastcall
_ApplicationDispT<T>::get_Inspectors(void)
{
  Outlook_xp::_InspectorsPtr Inspectors;
  this->get_Inspectors(&Inspectors);
  return Inspectors;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_LanguageSettings(Office_xp::LanguageSettings** LanguageSettings/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LanguageSettings"), DISPID(283));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::LanguageSettings**)LanguageSettings /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::LanguageSettingsPtr __fastcall
_ApplicationDispT<T>::get_LanguageSettings(void)
{
  Office_xp::LanguageSettingsPtr LanguageSettings;
  this->get_LanguageSettings(&LanguageSettings);
  return LanguageSettings;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_ProductCode(BSTR* ProductCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProductCode"), DISPID(284));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ProductCode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ApplicationDispT<T>::get_ProductCode(void)
{
  BSTR ProductCode;
  this->get_ProductCode((BSTR*)&ProductCode);
  return ProductCode;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_AnswerWizard(Office_xp::AnswerWizard** AnswerWizard/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AnswerWizard"), DISPID(285));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::AnswerWizard**)AnswerWizard /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::AnswerWizardPtr __fastcall
_ApplicationDispT<T>::get_AnswerWizard(void)
{
  Office_xp::AnswerWizardPtr AnswerWizard;
  this->get_AnswerWizard(&AnswerWizard);
  return AnswerWizard;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_FeatureInstall(Office_xp::MsoFeatureInstall* FeatureInstall/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FeatureInstall"), DISPID(286));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)FeatureInstall /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::MsoFeatureInstall __fastcall
_ApplicationDispT<T>::get_FeatureInstall(void)
{
  Office_xp::MsoFeatureInstall FeatureInstall;
  this->get_FeatureInstall((Office_xp::MsoFeatureInstall*)&FeatureInstall);
  return FeatureInstall;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::set_FeatureInstall(Office_xp::MsoFeatureInstall FeatureInstall/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FeatureInstall"), DISPID(286));
  TAutoArgs<1> _args;
  _args[1] = (int)FeatureInstall /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::ActiveWindow(LPDISPATCH* ActiveWindow/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveWindow"), DISPID(287));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ActiveWindow /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::ActiveWindow(void)
{
  LPDISPATCH ActiveWindow;
  this->ActiveWindow((LPDISPATCH*)&ActiveWindow);
  return ActiveWindow;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/, 
                               LPDISPATCH* DocItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyFile"), DISPID(64098));
  TAutoArgs<2> _args;
  _args[1] = FilePath /*[VT_BSTR:0]*/;
  _args[2] = DestFolderPath /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(DocItem /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ApplicationDispT<T>::CopyFile(BSTR FilePath/*[in]*/, BSTR DestFolderPath/*[in]*/)
{
  LPDISPATCH DocItem;
  this->CopyFile(FilePath, DestFolderPath, (LPDISPATCH*)&DocItem);
  return DocItem;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                     VARIANT SearchSubFolders/*[in,opt]*/, VARIANT Tag/*[in,opt]*/, 
                                     Outlook_xp::Search** AdvancedSearch/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdvancedSearch"), DISPID(64101));
  TAutoArgs<4> _args;
  _args[1] = Scope /*[VT_BSTR:0]*/;
  _args[2] = Filter /*[VT_VARIANT:0]*/;
  _args[3] = SearchSubFolders /*[VT_VARIANT:0]*/;
  _args[4] = Tag /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Search**)AdvancedSearch /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Search* __fastcall
_ApplicationDispT<T>::AdvancedSearch(BSTR Scope/*[in]*/, VARIANT Filter/*[in,opt]*/, 
                                     VARIANT SearchSubFolders/*[in,opt]*/, VARIANT Tag/*[in,opt]*/)
{
  Outlook_xp::Search* AdvancedSearch;
  this->AdvancedSearch(Scope, Filter, SearchSubFolders, Tag, (Outlook_xp::Search**)&AdvancedSearch);
  return AdvancedSearch;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::IsSearchSynchronous(BSTR LookInFolders/*[in]*/, 
                                          VARIANT_BOOL* IsSearchSynchronous/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSearchSynchronous"), DISPID(64108));
  TAutoArgs<1> _args;
  _args[1] = LookInFolders /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(IsSearchSynchronous /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ApplicationDispT<T>::IsSearchSynchronous(BSTR LookInFolders/*[in]*/)
{
  VARIANT_BOOL IsSearchSynchronous;
  this->IsSearchSynchronous(LookInFolders, (VARIANT_BOOL*)&IsSearchSynchronous);
  return IsSearchSynchronous;
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::GetNewNickNames(VARIANT* pvar/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNewNickNames"), DISPID(64072));
  TAutoArgs<1> _args;
  _args[1] = pvar /*[VT_VARIANT:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ApplicationDispT<T>::get_Reminders(Outlook_xp::_Reminders** Reminders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reminders"), DISPID(64153));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Reminders**)Reminders /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_RemindersPtr __fastcall
_ApplicationDispT<T>::get_Reminders(void)
{
  Outlook_xp::_RemindersPtr Reminders;
  this->get_Reminders(&Reminders);
  return Reminders;
}

// *********************************************************************//
// SmartIntf: TCOM_NameSpace
// Interface: _NameSpace
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_NameSpaceT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_NameSpaceT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_NameSpaceT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_NameSpaceT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_CurrentUser(Outlook_xp::Recipient** CurrentUser/*[out,retval]*/)
{
  return (*this)->get_CurrentUser(CurrentUser);
}

template <class T> Outlook_xp::RecipientPtr __fastcall
TCOM_NameSpaceT<T>::get_CurrentUser(void)
{
  Outlook_xp::RecipientPtr CurrentUser;
  OLECHECK(this->get_CurrentUser((Outlook_xp::RecipientPtr*)&CurrentUser));
  return CurrentUser;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/)
{
  return (*this)->get_Folders(Folders);
}

template <class T> Outlook_xp::_FoldersPtr __fastcall
TCOM_NameSpaceT<T>::get_Folders(void)
{
  Outlook_xp::_FoldersPtr Folders;
  OLECHECK(this->get_Folders((Outlook_xp::_FoldersPtr*)&Folders));
  return Folders;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Type(BSTR* Type/*[out,retval]*/)
{
  return (*this)->get_Type(Type);
}

template <class T> BSTR __fastcall
TCOM_NameSpaceT<T>::get_Type(void)
{
  BSTR Type = 0;
  OLECHECK(this->get_Type((BSTR*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_AddressLists(Outlook_xp::AddressLists** AddressLists/*[out,retval]*/)
{
  return (*this)->get_AddressLists(AddressLists);
}

template <class T> Outlook_xp::AddressListsPtr __fastcall
TCOM_NameSpaceT<T>::get_AddressLists(void)
{
  Outlook_xp::AddressListsPtr AddressLists;
  OLECHECK(this->get_AddressLists((Outlook_xp::AddressListsPtr*)&AddressLists));
  return AddressLists;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::CreateRecipient(BSTR RecipientName/*[in]*/, 
                                    Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  return (*this)->CreateRecipient(RecipientName, Recipient);
}

template <class T> Outlook_xp::Recipient* __fastcall
TCOM_NameSpaceT<T>::CreateRecipient(BSTR RecipientName/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  OLECHECK(this->CreateRecipient(RecipientName/*[in]*/, (Outlook_xp::Recipient**)&Recipient));
  return Recipient;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                     Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetDefaultFolder(FolderType, Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_NameSpaceT<T>::GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetDefaultFolder(FolderType/*[in]*/, (Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::GetFolderFromID(BSTR EntryIDFolder/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/, 
                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetFolderFromID(EntryIDFolder, EntryIDStore, Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_NameSpaceT<T>::GetFolderFromID(BSTR EntryIDFolder/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetFolderFromID(EntryIDFolder/*[in]*/, EntryIDStore/*[in,opt]*/, (Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::GetItemFromID(BSTR EntryIDItem/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetItemFromID(EntryIDItem, EntryIDStore, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_NameSpaceT<T>::GetItemFromID(BSTR EntryIDItem/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->GetItemFromID(EntryIDItem/*[in]*/, EntryIDStore/*[in,opt]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::GetRecipientFromID(BSTR EntryID/*[in]*/, 
                                       Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  return (*this)->GetRecipientFromID(EntryID, Recipient);
}

template <class T> Outlook_xp::Recipient* __fastcall
TCOM_NameSpaceT<T>::GetRecipientFromID(BSTR EntryID/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  OLECHECK(this->GetRecipientFromID(EntryID/*[in]*/, (Outlook_xp::Recipient**)&Recipient));
  return Recipient;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                           Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                           Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetSharedDefaultFolder(Recipient, FolderType, Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_NameSpaceT<T>::GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                           Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetSharedDefaultFolder(Recipient/*[in]*/, FolderType/*[in]*/, (Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::Logoff(void)
{
  return (*this)->Logoff();
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::Logon(VARIANT Profile/*[in,opt]*/, VARIANT Password/*[in,opt]*/, 
                          VARIANT ShowDialog/*[in,opt]*/, VARIANT NewSession/*[in,opt]*/)
{
  return (*this)->Logon(Profile, Password, ShowDialog, NewSession);
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::PickFolder(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->PickFolder(Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_NameSpaceT<T>::PickFolder(void)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->PickFolder((Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::RefreshRemoteHeaders(void)
{
  return (*this)->RefreshRemoteHeaders();
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_SyncObjects(Outlook_xp::SyncObjects** SyncObjects/*[out,retval]*/)
{
  return (*this)->get_SyncObjects(SyncObjects);
}

template <class T> Outlook_xp::SyncObjectsPtr __fastcall
TCOM_NameSpaceT<T>::get_SyncObjects(void)
{
  Outlook_xp::SyncObjectsPtr SyncObjects;
  OLECHECK(this->get_SyncObjects((Outlook_xp::SyncObjectsPtr*)&SyncObjects));
  return SyncObjects;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::AddStore(VARIANT Store/*[in]*/)
{
  return (*this)->AddStore(Store);
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::RemoveStore(Outlook_xp::MAPIFolder* Folder/*[in]*/)
{
  return (*this)->RemoveStore(Folder);
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_Offline(VARIANT_BOOL* Offline/*[out,retval]*/)
{
  return (*this)->get_Offline(Offline);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_NameSpaceT<T>::get_Offline(void)
{
  VARIANT_BOOL Offline;
  OLECHECK(this->get_Offline((VARIANT_BOOL*)&Offline));
  return Offline;
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::Dial(VARIANT ContactItem/*[in,opt]*/)
{
  return (*this)->Dial(ContactItem);
}

template <class T> HRESULT __fastcall
TCOM_NameSpaceT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_NameSpaceT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

// *********************************************************************//
// DispIntf:  _NameSpace
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063002-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_NameSpaceDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_NameSpaceDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_NameSpaceDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_NameSpaceDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_CurrentUser(Outlook_xp::Recipient** CurrentUser/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentUser"), DISPID(8449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)CurrentUser /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientPtr __fastcall
_NameSpaceDispT<T>::get_CurrentUser(void)
{
  Outlook_xp::RecipientPtr CurrentUser;
  this->get_CurrentUser(&CurrentUser);
  return CurrentUser;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Folders"), DISPID(8451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Folders**)Folders /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_FoldersPtr __fastcall
_NameSpaceDispT<T>::get_Folders(void)
{
  Outlook_xp::_FoldersPtr Folders;
  this->get_Folders(&Folders);
  return Folders;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Type(BSTR* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(8452));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NameSpaceDispT<T>::get_Type(void)
{
  BSTR Type;
  this->get_Type((BSTR*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_AddressLists(Outlook_xp::AddressLists** AddressLists/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressLists"), DISPID(8461));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressLists**)AddressLists /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AddressListsPtr __fastcall
_NameSpaceDispT<T>::get_AddressLists(void)
{
  Outlook_xp::AddressListsPtr AddressLists;
  this->get_AddressLists(&AddressLists);
  return AddressLists;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::CreateRecipient(BSTR RecipientName/*[in]*/, 
                                    Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateRecipient"), DISPID(8458));
  TAutoArgs<1> _args;
  _args[1] = RecipientName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)Recipient /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Recipient* __fastcall
_NameSpaceDispT<T>::CreateRecipient(BSTR RecipientName/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  this->CreateRecipient(RecipientName, (Outlook_xp::Recipient**)&Recipient);
  return Recipient;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                     Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDefaultFolder"), DISPID(8459));
  TAutoArgs<1> _args;
  _args[1] = (int)FolderType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_NameSpaceDispT<T>::GetDefaultFolder(Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetDefaultFolder(FolderType, (Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::GetFolderFromID(BSTR EntryIDFolder/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/, 
                                    Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFolderFromID"), DISPID(8456));
  TAutoArgs<2> _args;
  _args[1] = EntryIDFolder /*[VT_BSTR:0]*/;
  _args[2] = EntryIDStore /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_NameSpaceDispT<T>::GetFolderFromID(BSTR EntryIDFolder/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetFolderFromID(EntryIDFolder, EntryIDStore, (Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::GetItemFromID(BSTR EntryIDItem/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/, 
                                  LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetItemFromID"), DISPID(8457));
  TAutoArgs<2> _args;
  _args[1] = EntryIDItem /*[VT_BSTR:0]*/;
  _args[2] = EntryIDStore /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_NameSpaceDispT<T>::GetItemFromID(BSTR EntryIDItem/*[in]*/, VARIANT EntryIDStore/*[in,opt]*/)
{
  LPDISPATCH Item;
  this->GetItemFromID(EntryIDItem, EntryIDStore, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::GetRecipientFromID(BSTR EntryID/*[in]*/, 
                                       Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetRecipientFromID"), DISPID(8455));
  TAutoArgs<1> _args;
  _args[1] = EntryID /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)Recipient /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Recipient* __fastcall
_NameSpaceDispT<T>::GetRecipientFromID(BSTR EntryID/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  this->GetRecipientFromID(EntryID, (Outlook_xp::Recipient**)&Recipient);
  return Recipient;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                           Outlook_xp::OlDefaultFolders FolderType/*[in]*/, 
                                           Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSharedDefaultFolder"), DISPID(8460));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Recipient*)Recipient /*[VT_USERDEFINED:1]*/;
  _args[2] = (int)FolderType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_NameSpaceDispT<T>::GetSharedDefaultFolder(Outlook_xp::Recipient* Recipient/*[in]*/, 
                                           Outlook_xp::OlDefaultFolders FolderType/*[in]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetSharedDefaultFolder(Recipient, FolderType, (Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::Logoff()
{
  _TDispID _dispid(*this, OLETEXT("Logoff"), DISPID(8454));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::Logon(VARIANT Profile/*[in,opt]*/, VARIANT Password/*[in,opt]*/, 
                          VARIANT ShowDialog/*[in,opt]*/, VARIANT NewSession/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Logon"), DISPID(8453));
  TAutoArgs<4> _args;
  _args[1] = Profile /*[VT_VARIANT:0]*/;
  _args[2] = Password /*[VT_VARIANT:0]*/;
  _args[3] = ShowDialog /*[VT_VARIANT:0]*/;
  _args[4] = NewSession /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::PickFolder(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PickFolder"), DISPID(8462));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_NameSpaceDispT<T>::PickFolder(void)
{
  Outlook_xp::MAPIFolder* Folder;
  this->PickFolder((Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::RefreshRemoteHeaders()
{
  _TDispID _dispid(*this, OLETEXT("RefreshRemoteHeaders"), DISPID(8471));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_SyncObjects(Outlook_xp::SyncObjects** SyncObjects/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SyncObjects"), DISPID(8472));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::SyncObjects**)SyncObjects /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::SyncObjectsPtr __fastcall
_NameSpaceDispT<T>::get_SyncObjects(void)
{
  Outlook_xp::SyncObjectsPtr SyncObjects;
  this->get_SyncObjects(&SyncObjects);
  return SyncObjects;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::AddStore(VARIANT Store/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddStore"), DISPID(8473));
  TAutoArgs<1> _args;
  _args[1] = Store /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::RemoveStore(Outlook_xp::MAPIFolder* Folder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveStore"), DISPID(8474));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_Offline(VARIANT_BOOL* Offline/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offline"), DISPID(64076));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Offline /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_NameSpaceDispT<T>::get_Offline(void)
{
  VARIANT_BOOL Offline;
  this->get_Offline((VARIANT_BOOL*)&Offline);
  return Offline;
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::Dial(VARIANT ContactItem/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Dial"), DISPID(64013));
  TAutoArgs<1> _args;
  _args[1] = ContactItem /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NameSpaceDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_NameSpaceDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

// *********************************************************************//
// DispIntf:  Recipient
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063045-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
RecipientDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
RecipientDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
RecipientDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
RecipientDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Address(BSTR* Address/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Address"), DISPID(12291));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Address /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
RecipientDispT<T>::get_Address(void)
{
  BSTR Address;
  this->get_Address((BSTR*)&Address);
  return Address;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_AddressEntry(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressEntry"), DISPID(121));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)AddressEntry /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntryPtr __fastcall
RecipientDispT<T>::get_AddressEntry(void)
{
  Outlook_xp::AddressEntryPtr AddressEntry;
  this->get_AddressEntry(&AddressEntry);
  return AddressEntry;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::_set_AddressEntry(Outlook_xp::AddressEntry* AddressEntry/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressEntry"), DISPID(121));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::AddressEntry*)AddressEntry /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_AutoResponse(BSTR* AutoResponse/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoResponse"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AutoResponse /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
RecipientDispT<T>::get_AutoResponse(void)
{
  BSTR AutoResponse;
  this->get_AutoResponse((BSTR*)&AutoResponse);
  return AutoResponse;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::set_AutoResponse(BSTR AutoResponse/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoResponse"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = AutoResponse /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayType"), DISPID(14592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DisplayType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDisplayType __fastcall
RecipientDispT<T>::get_DisplayType(void)
{
  Outlook_xp::OlDisplayType DisplayType;
  this->get_DisplayType((Outlook_xp::OlDisplayType*)&DisplayType);
  return DisplayType;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
RecipientDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Index(long* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(91));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Index /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecipientDispT<T>::get_Index(void)
{
  long Index;
  this->get_Index((long*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_MeetingResponseStatus(Outlook_xp::OlResponseStatus* MeetingResponseStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MeetingResponseStatus"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MeetingResponseStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlResponseStatus __fastcall
RecipientDispT<T>::get_MeetingResponseStatus(void)
{
  Outlook_xp::OlResponseStatus MeetingResponseStatus;
  this->get_MeetingResponseStatus((Outlook_xp::OlResponseStatus*)&MeetingResponseStatus);
  return MeetingResponseStatus;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
RecipientDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Resolved(VARIANT_BOOL* Resolved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resolved"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Resolved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
RecipientDispT<T>::get_Resolved(void)
{
  VARIANT_BOOL Resolved;
  this->get_Resolved((VARIANT_BOOL*)&Resolved);
  return Resolved;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_TrackingStatus(Outlook_xp::OlTrackingStatus* TrackingStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingStatus"), DISPID(118));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)TrackingStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlTrackingStatus __fastcall
RecipientDispT<T>::get_TrackingStatus(void)
{
  Outlook_xp::OlTrackingStatus TrackingStatus;
  this->get_TrackingStatus((Outlook_xp::OlTrackingStatus*)&TrackingStatus);
  return TrackingStatus;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::set_TrackingStatus(Outlook_xp::OlTrackingStatus TrackingStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingStatus"), DISPID(118));
  TAutoArgs<1> _args;
  _args[1] = (int)TrackingStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_TrackingStatusTime(DATE* TrackingStatusTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingStatusTime"), DISPID(119));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TrackingStatusTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
RecipientDispT<T>::get_TrackingStatusTime(void)
{
  DATE TrackingStatusTime;
  this->get_TrackingStatusTime((DATE*)&TrackingStatusTime);
  return TrackingStatusTime;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::set_TrackingStatusTime(DATE TrackingStatusTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingStatusTime"), DISPID(119));
  TAutoArgs<1> _args;
  _args[1] = TrackingStatusTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::get_Type(long* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(3093));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecipientDispT<T>::get_Type(void)
{
  long Type;
  this->get_Type((long*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::set_Type(long Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(3093));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(110));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                            VARIANT CompleteFormat/*[in,opt]*/, BSTR* FreeBusyInfo/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FreeBusy"), DISPID(111));
  TAutoArgs<3> _args;
  _args[1] = Start /*[VT_DATE:0]*/;
  _args[2] = MinPerChar /*[VT_I4:0]*/;
  _args[3] = CompleteFormat /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(FreeBusyInfo /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
RecipientDispT<T>::FreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                            VARIANT CompleteFormat/*[in,opt]*/)
{
  BSTR FreeBusyInfo;
  this->FreeBusy(Start, MinPerChar, CompleteFormat, (BSTR*)&FreeBusyInfo);
  return FreeBusyInfo;
}

template <class T> HRESULT __fastcall
RecipientDispT<T>::Resolve(VARIANT_BOOL* Success/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resolve"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Success /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
RecipientDispT<T>::Resolve(void)
{
  VARIANT_BOOL Success;
  this->Resolve((VARIANT_BOOL*)&Success);
  return Success;
}

// *********************************************************************//
// DispIntf:  AddressEntry
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AddressEntryDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AddressEntryDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AddressEntryDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AddressEntryDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Address(BSTR* Address/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Address"), DISPID(12291));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Address /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressEntryDispT<T>::get_Address(void)
{
  BSTR Address;
  this->get_Address((BSTR*)&Address);
  return Address;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::set_Address(BSTR Address/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Address"), DISPID(12291));
  TAutoArgs<1> _args;
  _args[1] = Address /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_DisplayType(Outlook_xp::OlDisplayType* DisplayType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayType"), DISPID(14592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DisplayType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDisplayType __fastcall
AddressEntryDispT<T>::get_DisplayType(void)
{
  Outlook_xp::OlDisplayType DisplayType;
  this->get_DisplayType((Outlook_xp::OlDisplayType*)&DisplayType);
  return DisplayType;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_ID(BSTR* ID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressEntryDispT<T>::get_ID(void)
{
  BSTR ID;
  this->get_ID((BSTR*)&ID);
  return ID;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Manager(Outlook_xp::AddressEntry** Manager/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Manager"), DISPID(771));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)Manager /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntryPtr __fastcall
AddressEntryDispT<T>::get_Manager(void)
{
  Outlook_xp::AddressEntryPtr Manager;
  this->get_Manager(&Manager);
  return Manager;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
AddressEntryDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::set_MAPIOBJECT(LPUNKNOWN MAPIOBJECT/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<1> _args;
  _args[1] = MAPIOBJECT /*[VT_UNKNOWN:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Members(Outlook_xp::AddressEntries** Members/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Members"), DISPID(772));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntries**)Members /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntriesPtr __fastcall
AddressEntryDispT<T>::get_Members(void)
{
  Outlook_xp::AddressEntriesPtr Members;
  this->get_Members(&Members);
  return Members;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressEntryDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::get_Type(BSTR* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(12290));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressEntryDispT<T>::get_Type(void)
{
  BSTR Type;
  this->get_Type((BSTR*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::set_Type(BSTR Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(12290));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(770));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::Details(VARIANT HWnd/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Details"), DISPID(769));
  TAutoArgs<1> _args;
  _args[1] = HWnd /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                  VARIANT CompleteFormat/*[in,opt]*/, 
                                  BSTR* FreeBusyInfo/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFreeBusy"), DISPID(774));
  TAutoArgs<3> _args;
  _args[1] = Start /*[VT_DATE:0]*/;
  _args[2] = MinPerChar /*[VT_I4:0]*/;
  _args[3] = CompleteFormat /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(FreeBusyInfo /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressEntryDispT<T>::GetFreeBusy(DATE Start/*[in]*/, long MinPerChar/*[in]*/, 
                                  VARIANT CompleteFormat/*[in,opt]*/)
{
  BSTR FreeBusyInfo;
  this->GetFreeBusy(Start, MinPerChar, CompleteFormat, (BSTR*)&FreeBusyInfo);
  return FreeBusyInfo;
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::_Update(VARIANT MakePermanent/*[in,opt]*/, VARIANT Refresh/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(768));
  TAutoArgs<2> _args;
  _args[1] = MakePermanent /*[VT_VARIANT:0]*/;
  _args[2] = Refresh /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
AddressEntryDispT<T>::UpdateFreeBusy()
{
  _TDispID _dispid(*this, OLETEXT("UpdateFreeBusy"), DISPID(775));
  return OleFunction(_dispid);
}

// *********************************************************************//
// DispIntf:  AddressEntries
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AddressEntriesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AddressEntriesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AddressEntriesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AddressEntriesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AddressEntriesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::AddressEntry** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::AddressEntry* Item;
  this->Item(Index, (Outlook_xp::AddressEntry**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RawTable"), DISPID(90));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RawTable /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
AddressEntriesDispT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  this->get_RawTable((LPUNKNOWN*)&RawTable);
  return RawTable;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/, VARIANT Address/*[in,opt]*/
                            , Outlook_xp::AddressEntry** Entry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<3> _args;
  _args[1] = Type /*[VT_BSTR:0]*/;
  _args[2] = Name /*[VT_VARIANT:0]*/;
  _args[3] = Address /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)Entry /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::Add(BSTR Type/*[in]*/, VARIANT Name/*[in,opt]*/, VARIANT Address/*[in,opt]*/)
{
  Outlook_xp::AddressEntry* Entry;
  this->Add(Type, Name, Address, (Outlook_xp::AddressEntry**)&Entry);
  return Entry;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::GetFirst(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFirst"), DISPID(86));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)AddressEntry /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::GetFirst(void)
{
  Outlook_xp::AddressEntry* AddressEntry;
  this->GetFirst((Outlook_xp::AddressEntry**)&AddressEntry);
  return AddressEntry;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::GetLast(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLast"), DISPID(88));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)AddressEntry /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::GetLast(void)
{
  Outlook_xp::AddressEntry* AddressEntry;
  this->GetLast((Outlook_xp::AddressEntry**)&AddressEntry);
  return AddressEntry;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::GetNext(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNext"), DISPID(87));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)AddressEntry /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::GetNext(void)
{
  Outlook_xp::AddressEntry* AddressEntry;
  this->GetNext((Outlook_xp::AddressEntry**)&AddressEntry);
  return AddressEntry;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::GetPrevious(Outlook_xp::AddressEntry** AddressEntry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPrevious"), DISPID(89));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntry**)AddressEntry /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntry* __fastcall
AddressEntriesDispT<T>::GetPrevious(void)
{
  Outlook_xp::AddressEntry* AddressEntry;
  this->GetPrevious((Outlook_xp::AddressEntry**)&AddressEntry);
  return AddressEntry;
}

template <class T> HRESULT __fastcall
AddressEntriesDispT<T>::Sort(VARIANT Property/*[in,opt]*/, VARIANT Order/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(97));
  TAutoArgs<2> _args;
  _args[1] = Property /*[VT_VARIANT:0]*/;
  _args[2] = Order /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_Folders
// Interface: _Folders
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_FoldersT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_FoldersT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_FoldersT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_FoldersT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_FoldersT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::MAPIFolder** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::MAPIFolder* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::MAPIFolder**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  return (*this)->get_RawTable(RawTable);
}

template <class T> LPUNKNOWN __fastcall
TCOM_FoldersT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
  return RawTable;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/, 
                      Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->Add(Name, Type, Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->Add(Name/*[in]*/, Type/*[in,opt]*/, (Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::GetFirst(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetFirst(Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::GetFirst(void)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetFirst((Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::GetLast(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetLast(Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::GetLast(void)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetLast((Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::GetNext(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetNext(Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::GetNext(void)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetNext((Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::GetPrevious(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  return (*this)->GetPrevious(Folder);
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
TCOM_FoldersT<T>::GetPrevious(void)
{
  Outlook_xp::MAPIFolder* Folder;
  OLECHECK(this->GetPrevious((Outlook_xp::MAPIFolder**)&Folder));
  return Folder;
}

template <class T> HRESULT __fastcall
TCOM_FoldersT<T>::Remove(long Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

// *********************************************************************//
// DispIntf:  _Folders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063040-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_FoldersDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_FoldersDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_FoldersDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_FoldersDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_FoldersDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::MAPIFolder** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::MAPIFolder* Item;
  this->Item(Index, (Outlook_xp::MAPIFolder**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RawTable"), DISPID(90));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RawTable /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_FoldersDispT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  this->get_RawTable((LPUNKNOWN*)&RawTable);
  return RawTable;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/, 
                      Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::Add(BSTR Name/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  this->Add(Name, Type, (Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::GetFirst(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFirst"), DISPID(86));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::GetFirst(void)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetFirst((Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::GetLast(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLast"), DISPID(88));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::GetLast(void)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetLast((Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::GetNext(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNext"), DISPID(87));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::GetNext(void)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetNext((Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::GetPrevious(Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPrevious"), DISPID(89));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
_FoldersDispT<T>::GetPrevious(void)
{
  Outlook_xp::MAPIFolder* Folder;
  this->GetPrevious((Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
_FoldersDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  MAPIFolder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063006-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
MAPIFolderDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
MAPIFolderDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
MAPIFolderDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
MAPIFolderDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultItemType"), DISPID(12550));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DefaultItemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlItemType __fastcall
MAPIFolderDispT<T>::get_DefaultItemType(void)
{
  Outlook_xp::OlItemType DefaultItemType;
  this->get_DefaultItemType((Outlook_xp::OlItemType*)&DefaultItemType);
  return DefaultItemType;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_DefaultMessageClass(BSTR* DefaultMessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultMessageClass"), DISPID(12551));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DefaultMessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_DefaultMessageClass(void)
{
  BSTR DefaultMessageClass;
  this->get_DefaultMessageClass((BSTR*)&DefaultMessageClass);
  return DefaultMessageClass;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Description(BSTR* Description/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Description"), DISPID(12292));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Description /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_Description(void)
{
  BSTR Description;
  this->get_Description((BSTR*)&Description);
  return Description;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_Description(BSTR Description/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Description"), DISPID(12292));
  TAutoArgs<1> _args;
  _args[1] = Description /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Folders(Outlook_xp::_Folders** Folders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Folders"), DISPID(8451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Folders**)Folders /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_FoldersPtr __fastcall
MAPIFolderDispT<T>::get_Folders(void)
{
  Outlook_xp::_FoldersPtr Folders;
  this->get_Folders(&Folders);
  return Folders;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Items(Outlook_xp::_Items** Items/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Items"), DISPID(12544));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Items**)Items /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ItemsPtr __fastcall
MAPIFolderDispT<T>::get_Items(void)
{
  Outlook_xp::_ItemsPtr Items;
  this->get_Items(&Items);
  return Items;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_StoreID(BSTR* StoreID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StoreID"), DISPID(12552));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StoreID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_StoreID(void)
{
  BSTR StoreID;
  this->get_StoreID((BSTR*)&StoreID);
  return StoreID;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_UnReadItemCount(long* UnReadItemCount/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnReadItemCount"), DISPID(13827));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnReadItemCount /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
MAPIFolderDispT<T>::get_UnReadItemCount(void)
{
  long UnReadItemCount;
  this->get_UnReadItemCount((long*)&UnReadItemCount);
  return UnReadItemCount;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/, 
                           Outlook_xp::MAPIFolder** Folder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyTo"), DISPID(61490));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestinationFolder /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)Folder /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolder* __fastcall
MAPIFolderDispT<T>::CopyTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/)
{
  Outlook_xp::MAPIFolder* Folder;
  this->CopyTo(DestinationFolder, (Outlook_xp::MAPIFolder**)&Folder);
  return Folder;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61509));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::Display()
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(12548));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::GetExplorer(VARIANT DisplayMode/*[in,opt]*/, 
                                Outlook_xp::_Explorer** Explorer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetExplorer"), DISPID(12545));
  TAutoArgs<1> _args;
  _args[1] = DisplayMode /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Explorer**)Explorer /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Explorer* __fastcall
MAPIFolderDispT<T>::GetExplorer(VARIANT DisplayMode/*[in,opt]*/)
{
  Outlook_xp::_Explorer* Explorer;
  this->GetExplorer(DisplayMode, (Outlook_xp::_Explorer**)&Explorer);
  return Explorer;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::MoveTo(Outlook_xp::MAPIFolder* DestinationFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MoveTo"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestinationFolder /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_UserPermissions(LPDISPATCH* UserPermissions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserPermissions"), DISPID(12561));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UserPermissions /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
MAPIFolderDispT<T>::get_UserPermissions(void)
{
  LPDISPATCH UserPermissions;
  this->get_UserPermissions((LPDISPATCH*)&UserPermissions);
  return UserPermissions;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_WebViewOn(VARIANT_BOOL* WebViewOn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewOn"), DISPID(12562));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(WebViewOn /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
MAPIFolderDispT<T>::get_WebViewOn(void)
{
  VARIANT_BOOL WebViewOn;
  this->get_WebViewOn((VARIANT_BOOL*)&WebViewOn);
  return WebViewOn;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_WebViewOn(VARIANT_BOOL WebViewOn/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewOn"), DISPID(12562));
  TAutoArgs<1> _args;
  _args[1] = WebViewOn /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_WebViewURL(BSTR* WebViewURL/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewURL"), DISPID(12563));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(WebViewURL /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_WebViewURL(void)
{
  BSTR WebViewURL;
  this->get_WebViewURL((BSTR*)&WebViewURL);
  return WebViewURL;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_WebViewURL(BSTR WebViewURL/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewURL"), DISPID(12563));
  TAutoArgs<1> _args;
  _args[1] = WebViewURL /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_WebViewAllowNavigation(VARIANT_BOOL* WebViewAllowNavigation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewAllowNavigation"), DISPID(12564));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(WebViewAllowNavigation /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
MAPIFolderDispT<T>::get_WebViewAllowNavigation(void)
{
  VARIANT_BOOL WebViewAllowNavigation;
  this->get_WebViewAllowNavigation((VARIANT_BOOL*)&WebViewAllowNavigation);
  return WebViewAllowNavigation;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_WebViewAllowNavigation(VARIANT_BOOL WebViewAllowNavigation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebViewAllowNavigation"), DISPID(12564));
  TAutoArgs<1> _args;
  _args[1] = WebViewAllowNavigation /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::AddToPFFavorites()
{
  _TDispID _dispid(*this, OLETEXT("AddToPFFavorites"), DISPID(12565));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_AddressBookName(BSTR* AddressBookName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressBookName"), DISPID(64110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AddressBookName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_AddressBookName(void)
{
  BSTR AddressBookName;
  this->get_AddressBookName((BSTR*)&AddressBookName);
  return AddressBookName;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_AddressBookName(BSTR AddressBookName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressBookName"), DISPID(64110));
  TAutoArgs<1> _args;
  _args[1] = AddressBookName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_ShowAsOutlookAB(VARIANT_BOOL* ShowAsOutlookAB/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAsOutlookAB"), DISPID(64111));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ShowAsOutlookAB /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
MAPIFolderDispT<T>::get_ShowAsOutlookAB(void)
{
  VARIANT_BOOL ShowAsOutlookAB;
  this->get_ShowAsOutlookAB((VARIANT_BOOL*)&ShowAsOutlookAB);
  return ShowAsOutlookAB;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_ShowAsOutlookAB(VARIANT_BOOL ShowAsOutlookAB/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAsOutlookAB"), DISPID(64111));
  TAutoArgs<1> _args;
  _args[1] = ShowAsOutlookAB /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_FolderPath(BSTR* FolderPath/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FolderPath"), DISPID(64120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FolderPath /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_FolderPath(void)
{
  BSTR FolderPath;
  this->get_FolderPath((BSTR*)&FolderPath);
  return FolderPath;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::AddToFavorites(VARIANT fNoUI/*[in,opt]*/, VARIANT Name/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddToFavorites"), DISPID(64097));
  TAutoArgs<2> _args;
  _args[1] = fNoUI /*[VT_VARIANT:0]*/;
  _args[2] = Name /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_InAppFolderSyncObject(VARIANT_BOOL* InAppFolderSyncObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InAppFolderSyncObject"), DISPID(64075));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InAppFolderSyncObject /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
MAPIFolderDispT<T>::get_InAppFolderSyncObject(void)
{
  VARIANT_BOOL InAppFolderSyncObject;
  this->get_InAppFolderSyncObject((VARIANT_BOOL*)&InAppFolderSyncObject);
  return InAppFolderSyncObject;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_InAppFolderSyncObject(VARIANT_BOOL InAppFolderSyncObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InAppFolderSyncObject"), DISPID(64075));
  TAutoArgs<1> _args;
  _args[1] = InAppFolderSyncObject /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_CurrentView(Outlook_xp::View** CurrentView/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentView"), DISPID(8704));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::View**)CurrentView /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ViewPtr __fastcall
MAPIFolderDispT<T>::get_CurrentView(void)
{
  Outlook_xp::ViewPtr CurrentView;
  this->get_CurrentView(&CurrentView);
  return CurrentView;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_CustomViewsOnly(VARIANT_BOOL* CustomViewsOnly/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomViewsOnly"), DISPID(64070));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CustomViewsOnly /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
MAPIFolderDispT<T>::get_CustomViewsOnly(void)
{
  VARIANT_BOOL CustomViewsOnly;
  this->get_CustomViewsOnly((VARIANT_BOOL*)&CustomViewsOnly);
  return CustomViewsOnly;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::set_CustomViewsOnly(VARIANT_BOOL CustomViewsOnly/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomViewsOnly"), DISPID(64070));
  TAutoArgs<1> _args;
  _args[1] = CustomViewsOnly /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_Views(Outlook_xp::_Views** Views/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Views"), DISPID(12553));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Views**)Views /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ViewsPtr __fastcall
MAPIFolderDispT<T>::get_Views(void)
{
  Outlook_xp::_ViewsPtr Views;
  this->get_Views(&Views);
  return Views;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
MAPIFolderDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
MAPIFolderDispT<T>::get_FullFolderPath(BSTR* FullFolderPath/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullFolderPath"), DISPID(64145));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FullFolderPath /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
MAPIFolderDispT<T>::get_FullFolderPath(void)
{
  BSTR FullFolderPath;
  this->get_FullFolderPath((BSTR*)&FullFolderPath);
  return FullFolderPath;
}

// *********************************************************************//
// SmartIntf: TCOM_Items
// Interface: _Items
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ItemsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ItemsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ItemsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_ItemsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Item(Index/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  return (*this)->get_RawTable(RawTable);
}

template <class T> LPUNKNOWN __fastcall
TCOM_ItemsT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
  return RawTable;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::get_IncludeRecurrences(VARIANT_BOOL* IncludeRecurrences/*[out,retval]*/)
{
  return (*this)->get_IncludeRecurrences(IncludeRecurrences);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ItemsT<T>::get_IncludeRecurrences(void)
{
  VARIANT_BOOL IncludeRecurrences;
  OLECHECK(this->get_IncludeRecurrences((VARIANT_BOOL*)&IncludeRecurrences));
  return IncludeRecurrences;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::set_IncludeRecurrences(VARIANT_BOOL IncludeRecurrences/*[in]*/)
{
  return (*this)->set_IncludeRecurrences(IncludeRecurrences);
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Add(VARIANT Type/*[in,opt]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Add(Type, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::Add(VARIANT Type/*[in,opt]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Add(Type/*[in,opt]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Find(BSTR Filter/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Find(Filter, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::Find(BSTR Filter/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Find(Filter/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::FindNext(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->FindNext(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::FindNext(void)
{
  LPDISPATCH Item;
  OLECHECK(this->FindNext((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::GetFirst(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetFirst(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::GetFirst(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetFirst((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::GetLast(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetLast(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::GetLast(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetLast((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::GetNext(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetNext(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::GetNext(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetNext((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::GetPrevious(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetPrevious(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ItemsT<T>::GetPrevious(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetPrevious((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Remove(long Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::ResetColumns(void)
{
  return (*this)->ResetColumns();
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Restrict(BSTR Filter/*[in]*/, Outlook_xp::_Items** Items/*[out,retval]*/)
{
  return (*this)->Restrict(Filter, Items);
}

template <class T> Outlook_xp::_Items* __fastcall
TCOM_ItemsT<T>::Restrict(BSTR Filter/*[in]*/)
{
  Outlook_xp::_Items* Items;
  OLECHECK(this->Restrict(Filter/*[in]*/, (Outlook_xp::_Items**)&Items));
  return Items;
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::SetColumns(BSTR Columns/*[in]*/)
{
  return (*this)->SetColumns(Columns);
}

template <class T> HRESULT __fastcall
TCOM_ItemsT<T>::Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/)
{
  return (*this)->Sort(Property, Descending);
}

// *********************************************************************//
// DispIntf:  _Items
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063041-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ItemsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ItemsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ItemsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ItemsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RawTable"), DISPID(90));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RawTable /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_ItemsDispT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  this->get_RawTable((LPUNKNOWN*)&RawTable);
  return RawTable;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::get_IncludeRecurrences(VARIANT_BOOL* IncludeRecurrences/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncludeRecurrences"), DISPID(206));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IncludeRecurrences /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ItemsDispT<T>::get_IncludeRecurrences(void)
{
  VARIANT_BOOL IncludeRecurrences;
  this->get_IncludeRecurrences((VARIANT_BOOL*)&IncludeRecurrences);
  return IncludeRecurrences;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::set_IncludeRecurrences(VARIANT_BOOL IncludeRecurrences/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncludeRecurrences"), DISPID(206));
  TAutoArgs<1> _args;
  _args[1] = IncludeRecurrences /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Add(VARIANT Type/*[in,opt]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::Add(VARIANT Type/*[in,opt]*/)
{
  LPDISPATCH Item;
  this->Add(Type, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Find(BSTR Filter/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(98));
  TAutoArgs<1> _args;
  _args[1] = Filter /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::Find(BSTR Filter/*[in]*/)
{
  LPDISPATCH Item;
  this->Find(Filter, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::FindNext(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FindNext"), DISPID(99));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::FindNext(void)
{
  LPDISPATCH Item;
  this->FindNext((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::GetFirst(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFirst"), DISPID(86));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::GetFirst(void)
{
  LPDISPATCH Item;
  this->GetFirst((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::GetLast(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLast"), DISPID(88));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::GetLast(void)
{
  LPDISPATCH Item;
  this->GetLast((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::GetNext(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNext"), DISPID(87));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::GetNext(void)
{
  LPDISPATCH Item;
  this->GetNext((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::GetPrevious(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPrevious"), DISPID(89));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ItemsDispT<T>::GetPrevious(void)
{
  LPDISPATCH Item;
  this->GetPrevious((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::ResetColumns()
{
  _TDispID _dispid(*this, OLETEXT("ResetColumns"), DISPID(93));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Restrict(BSTR Filter/*[in]*/, Outlook_xp::_Items** Items/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Restrict"), DISPID(100));
  TAutoArgs<1> _args;
  _args[1] = Filter /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Items**)Items /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Items* __fastcall
_ItemsDispT<T>::Restrict(BSTR Filter/*[in]*/)
{
  Outlook_xp::_Items* Items;
  this->Restrict(Filter, (Outlook_xp::_Items**)&Items);
  return Items;
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::SetColumns(BSTR Columns/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetColumns"), DISPID(92));
  TAutoArgs<1> _args;
  _args[1] = Columns /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ItemsDispT<T>::Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(97));
  TAutoArgs<2> _args;
  _args[1] = Property /*[VT_BSTR:0]*/;
  _args[2] = Descending /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_Explorer
// Interface: _Explorer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ExplorerT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ExplorerT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ExplorerT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ExplorerT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/)
{
  return (*this)->get_CommandBars(CommandBars);
}

template <class T> Office_xp::CommandBarsPtr __fastcall
TCOM_ExplorerT<T>::get_CommandBars(void)
{
  Office_xp::CommandBarsPtr CommandBars;
  OLECHECK(this->get_CommandBars((Office_xp::CommandBarsPtr*)&CommandBars));
  return CommandBars;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_CurrentFolder(Outlook_xp::MAPIFolder** CurrentFolder/*[out,retval]*/)
{
  return (*this)->get_CurrentFolder(CurrentFolder);
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
TCOM_ExplorerT<T>::get_CurrentFolder(void)
{
  Outlook_xp::MAPIFolderPtr CurrentFolder;
  OLECHECK(this->get_CurrentFolder((Outlook_xp::MAPIFolderPtr*)&CurrentFolder));
  return CurrentFolder;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::_set_CurrentFolder(Outlook_xp::MAPIFolder* CurrentFolder/*[in]*/)
{
  return (*this)->_set_CurrentFolder(CurrentFolder);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::Close(void)
{
  return (*this)->Close();
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::Display(void)
{
  return (*this)->Display();
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  return (*this)->get_Caption(Caption);
}

template <class T> BSTR __fastcall
TCOM_ExplorerT<T>::get_Caption(void)
{
  BSTR Caption = 0;
  OLECHECK(this->get_Caption((BSTR*)&Caption));
  return Caption;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_CurrentView(VARIANT* CurrentView/*[out,retval]*/)
{
  return (*this)->get_CurrentView(CurrentView);
}

template <class T> VARIANT __fastcall
TCOM_ExplorerT<T>::get_CurrentView(void)
{
  VARIANT CurrentView;
  OLECHECK(this->get_CurrentView((VARIANT*)&CurrentView));
  return CurrentView;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_CurrentView(VARIANT CurrentView/*[in]*/)
{
  return (*this)->set_CurrentView(CurrentView);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOM_ExplorerT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Left(long* Left/*[out,retval]*/)
{
  return (*this)->get_Left(Left);
}

template <class T> long __fastcall
TCOM_ExplorerT<T>::get_Left(void)
{
  long Left;
  OLECHECK(this->get_Left((long*)&Left));
  return Left;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_Left(long Left/*[in]*/)
{
  return (*this)->set_Left(Left);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Panes(Outlook_xp::Panes** Panes/*[out,retval]*/)
{
  return (*this)->get_Panes(Panes);
}

template <class T> Outlook_xp::PanesPtr __fastcall
TCOM_ExplorerT<T>::get_Panes(void)
{
  Outlook_xp::PanesPtr Panes;
  OLECHECK(this->get_Panes((Outlook_xp::PanesPtr*)&Panes));
  return Panes;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Selection(Outlook_xp::Selection** Selection/*[out,retval]*/)
{
  return (*this)->get_Selection(Selection);
}

template <class T> Outlook_xp::SelectionPtr __fastcall
TCOM_ExplorerT<T>::get_Selection(void)
{
  Outlook_xp::SelectionPtr Selection;
  OLECHECK(this->get_Selection((Outlook_xp::SelectionPtr*)&Selection));
  return Selection;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Top(long* Top/*[out,retval]*/)
{
  return (*this)->get_Top(Top);
}

template <class T> long __fastcall
TCOM_ExplorerT<T>::get_Top(void)
{
  long Top;
  OLECHECK(this->get_Top((long*)&Top));
  return Top;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_Top(long Top/*[in]*/)
{
  return (*this)->set_Top(Top);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOM_ExplorerT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/)
{
  return (*this)->get_WindowState(WindowState);
}

template <class T> Outlook_xp::OlWindowState __fastcall
TCOM_ExplorerT<T>::get_WindowState(void)
{
  Outlook_xp::OlWindowState WindowState;
  OLECHECK(this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState));
  return WindowState;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/)
{
  return (*this)->set_WindowState(WindowState);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::Activate(void)
{
  return (*this)->Activate();
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/, 
                                 VARIANT_BOOL* IsPaneVisible/*[out,retval]*/)
{
  return (*this)->IsPaneVisible(Pane, IsPaneVisible);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ExplorerT<T>::IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/)
{
  VARIANT_BOOL IsPaneVisible;
  OLECHECK(this->IsPaneVisible(Pane/*[in]*/, (VARIANT_BOOL*)&IsPaneVisible));
  return IsPaneVisible;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::ShowPane(Outlook_xp::OlPane Pane/*[in]*/, VARIANT_BOOL Visible/*[in]*/)
{
  return (*this)->ShowPane(Pane, Visible);
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_Views(LPDISPATCH* Views/*[out,retval]*/)
{
  return (*this)->get_Views(Views);
}

template <class T> LPDISPATCH __fastcall
TCOM_ExplorerT<T>::get_Views(void)
{
  LPDISPATCH Views;
  OLECHECK(this->get_Views((LPDISPATCH*)&Views));
  return Views;
}

template <class T> HRESULT __fastcall
TCOM_ExplorerT<T>::get_HTMLDocument(LPDISPATCH* HTMLDocument/*[out,retval]*/)
{
  return (*this)->get_HTMLDocument(HTMLDocument);
}

template <class T> LPDISPATCH __fastcall
TCOM_ExplorerT<T>::get_HTMLDocument(void)
{
  LPDISPATCH HTMLDocument;
  OLECHECK(this->get_HTMLDocument((LPDISPATCH*)&HTMLDocument));
  return HTMLDocument;
}

// *********************************************************************//
// DispIntf:  _Explorer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063003-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ExplorerDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ExplorerDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ExplorerDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ExplorerDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CommandBars"), DISPID(8448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::CommandBars**)CommandBars /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::CommandBarsPtr __fastcall
_ExplorerDispT<T>::get_CommandBars(void)
{
  Office_xp::CommandBarsPtr CommandBars;
  this->get_CommandBars(&CommandBars);
  return CommandBars;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_CurrentFolder(Outlook_xp::MAPIFolder** CurrentFolder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentFolder"), DISPID(8449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)CurrentFolder /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
_ExplorerDispT<T>::get_CurrentFolder(void)
{
  Outlook_xp::MAPIFolderPtr CurrentFolder;
  this->get_CurrentFolder(&CurrentFolder);
  return CurrentFolder;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::_set_CurrentFolder(Outlook_xp::MAPIFolder* CurrentFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentFolder"), DISPID(8449));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)CurrentFolder /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::Close()
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(8451));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::Display()
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(8452));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(8465));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Caption /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ExplorerDispT<T>::get_Caption(void)
{
  BSTR Caption;
  this->get_Caption((BSTR*)&Caption);
  return Caption;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_CurrentView(VARIANT* CurrentView/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentView"), DISPID(8704));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CurrentView /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
_ExplorerDispT<T>::get_CurrentView(void)
{
  VARIANT CurrentView;
  this->get_CurrentView((VARIANT*)&CurrentView);
  return CurrentView;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_CurrentView(VARIANT CurrentView/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentView"), DISPID(8704));
  TAutoArgs<1> _args;
  _args[1] = CurrentView /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ExplorerDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8468));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Left(long* Left/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(8469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Left /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ExplorerDispT<T>::get_Left(void)
{
  long Left;
  this->get_Left((long*)&Left);
  return Left;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_Left(long Left/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(8469));
  TAutoArgs<1> _args;
  _args[1] = Left /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Panes(Outlook_xp::Panes** Panes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Panes"), DISPID(8705));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Panes**)Panes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::PanesPtr __fastcall
_ExplorerDispT<T>::get_Panes(void)
{
  Outlook_xp::PanesPtr Panes;
  this->get_Panes(&Panes);
  return Panes;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Selection(Outlook_xp::Selection** Selection/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Selection"), DISPID(8706));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Selection**)Selection /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::SelectionPtr __fastcall
_ExplorerDispT<T>::get_Selection(void)
{
  Outlook_xp::SelectionPtr Selection;
  this->get_Selection(&Selection);
  return Selection;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Top(long* Top/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(8470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Top /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ExplorerDispT<T>::get_Top(void)
{
  long Top;
  this->get_Top((long*)&Top);
  return Top;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_Top(long Top/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(8470));
  TAutoArgs<1> _args;
  _args[1] = Top /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(8471));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ExplorerDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(8471));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowState"), DISPID(8466));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)WindowState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlWindowState __fastcall
_ExplorerDispT<T>::get_WindowState(void)
{
  Outlook_xp::OlWindowState WindowState;
  this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState);
  return WindowState;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowState"), DISPID(8466));
  TAutoArgs<1> _args;
  _args[1] = (int)WindowState /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::Activate()
{
  _TDispID _dispid(*this, OLETEXT("Activate"), DISPID(8467));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/, 
                                 VARIANT_BOOL* IsPaneVisible/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsPaneVisible"), DISPID(8707));
  TAutoArgs<1> _args;
  _args[1] = (int)Pane /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(IsPaneVisible /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ExplorerDispT<T>::IsPaneVisible(Outlook_xp::OlPane Pane/*[in]*/)
{
  VARIANT_BOOL IsPaneVisible;
  this->IsPaneVisible(Pane, (VARIANT_BOOL*)&IsPaneVisible);
  return IsPaneVisible;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::ShowPane(Outlook_xp::OlPane Pane/*[in]*/, VARIANT_BOOL Visible/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPane"), DISPID(8708));
  TAutoArgs<2> _args;
  _args[1] = (int)Pane /*[VT_USERDEFINED:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_Views(LPDISPATCH* Views/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Views"), DISPID(12553));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Views /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ExplorerDispT<T>::get_Views(void)
{
  LPDISPATCH Views;
  this->get_Views((LPDISPATCH*)&Views);
  return Views;
}

template <class T> HRESULT __fastcall
_ExplorerDispT<T>::get_HTMLDocument(LPDISPATCH* HTMLDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLDocument"), DISPID(64146));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HTMLDocument /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ExplorerDispT<T>::get_HTMLDocument(void)
{
  LPDISPATCH HTMLDocument;
  this->get_HTMLDocument((LPDISPATCH*)&HTMLDocument);
  return HTMLDocument;
}

// *********************************************************************//
// DispIntf:  Panes
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063009-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
PanesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
PanesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
PanesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
PanesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
PanesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
PanesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
PanesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PanesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
PanesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
PanesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
PanesDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PanesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

// *********************************************************************//
// DispIntf:  Selection
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063087-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
SelectionDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
SelectionDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
SelectionDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
SelectionDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
SelectionDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
SelectionDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
SelectionDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
SelectionDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
SelectionDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
SelectionDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
SelectionDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
SelectionDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

// *********************************************************************//
// DispIntf:  View
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063095-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ViewDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ViewDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ViewDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ViewDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ViewDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::Apply()
{
  _TDispID _dispid(*this, OLETEXT("Apply"), DISPID(407));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::Copy(BSTR Name/*[in]*/, Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                   Outlook_xp::View** ppview/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = (int)SaveOption /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::View**)ppview /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::View* __fastcall
ViewDispT<T>::Copy(BSTR Name/*[in]*/, Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/)
{
  Outlook_xp::View* ppview;
  this->Copy(Name, SaveOption, (Outlook_xp::View**)&ppview);
  return ppview;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::Reset()
{
  _TDispID _dispid(*this, OLETEXT("Reset"), DISPID(64068));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Language(BSTR* Language/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Language"), DISPID(64065));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Language /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ViewDispT<T>::get_Language(void)
{
  BSTR Language;
  this->get_Language((BSTR*)&Language);
  return Language;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::set_Language(BSTR Language/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Language"), DISPID(64065));
  TAutoArgs<1> _args;
  _args[1] = Language /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_LockUserChanges(VARIANT_BOOL* LockUserChanges/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LockUserChanges"), DISPID(64064));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LockUserChanges /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
ViewDispT<T>::get_LockUserChanges(void)
{
  VARIANT_BOOL LockUserChanges;
  this->get_LockUserChanges((VARIANT_BOOL*)&LockUserChanges);
  return LockUserChanges;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::set_LockUserChanges(VARIANT_BOOL LockUserChanges/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LockUserChanges"), DISPID(64064));
  TAutoArgs<1> _args;
  _args[1] = LockUserChanges /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ViewDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_SaveOption(Outlook_xp::OlViewSaveOption* SaveOption/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveOption"), DISPID(64063));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)SaveOption /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlViewSaveOption __fastcall
ViewDispT<T>::get_SaveOption(void)
{
  Outlook_xp::OlViewSaveOption SaveOption;
  this->get_SaveOption((Outlook_xp::OlViewSaveOption*)&SaveOption);
  return SaveOption;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_Standard(VARIANT_BOOL* Standard/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Standard"), DISPID(64062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Standard /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
ViewDispT<T>::get_Standard(void)
{
  VARIANT_BOOL Standard;
  this->get_Standard((VARIANT_BOOL*)&Standard);
  return Standard;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_ViewType(Outlook_xp::OlViewType* ViewType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewType"), DISPID(404));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ViewType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlViewType __fastcall
ViewDispT<T>::get_ViewType(void)
{
  Outlook_xp::OlViewType ViewType;
  this->get_ViewType((Outlook_xp::OlViewType*)&ViewType);
  return ViewType;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::get_XML(BSTR* XML/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XML"), DISPID(64060));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(XML /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ViewDispT<T>::get_XML(void)
{
  BSTR XML;
  this->get_XML((BSTR*)&XML);
  return XML;
}

template <class T> HRESULT __fastcall
ViewDispT<T>::set_XML(BSTR XML/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XML"), DISPID(64060));
  TAutoArgs<1> _args;
  _args[1] = XML /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ViewDispT<T>::GoToDate(DATE Date/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GoToDate"), DISPID(64054));
  TAutoArgs<1> _args;
  _args[1] = Date /*[VT_DATE:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_Views
// Interface: _Views
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ViewsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ViewsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ViewsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ViewsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_ViewsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::View** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::View* __fastcall
TCOM_ViewsT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::View* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::View**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                    Outlook_xp::View** ppview/*[out,retval]*/)
{
  return (*this)->Add(Name, ViewType, SaveOption, ppview);
}

template <class T> Outlook_xp::View* __fastcall
TCOM_ViewsT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/)
{
  Outlook_xp::View* ppview;
  OLECHECK(this->Add(Name/*[in]*/, ViewType/*[in]*/, SaveOption/*[in,opt]*/, (Outlook_xp::View**)&ppview));
  return ppview;
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::Remove(VARIANT Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

template <class T> HRESULT __fastcall
TCOM_ViewsT<T>::_NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/)
{
  return (*this)->_NewEnum(ppvObject);
}

template <class T> LPUNKNOWN __fastcall
TCOM_ViewsT<T>::_NewEnum(void)
{
  LPUNKNOWN ppvObject;
  OLECHECK(this->_NewEnum((LPUNKNOWN*)&ppvObject));
  return ppvObject;
}

// *********************************************************************//
// DispIntf:  _Views
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ViewsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ViewsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ViewsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ViewsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ViewsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ViewsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::View** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::View**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::View* __fastcall
_ViewsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::View* Item;
  this->Item(Index, (Outlook_xp::View**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/, 
                    Outlook_xp::View** ppview/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<3> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = (int)ViewType /*[VT_USERDEFINED:0]*/;
  _args[3] = (int)SaveOption /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::View**)ppview /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::View* __fastcall
_ViewsDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlViewType ViewType/*[in]*/, 
                    Outlook_xp::OlViewSaveOption SaveOption/*[in,opt]*/)
{
  Outlook_xp::View* ppview;
  this->Add(Name, ViewType, SaveOption, (Outlook_xp::View**)&ppview);
  return ppview;
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ViewsDispT<T>::_NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppvObject /*[VT_UNKNOWN:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_ViewsDispT<T>::_NewEnum(void)
{
  LPUNKNOWN ppvObject;
  this->_NewEnum((LPUNKNOWN*)&ppvObject);
  return ppvObject;
}

// *********************************************************************//
// DispIntf:  AddressLists
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063048-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AddressListsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AddressListsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AddressListsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AddressListsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AddressListsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AddressListsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AddressListsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AddressListsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AddressListsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AddressListsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
AddressListsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::AddressList** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressList**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AddressList* __fastcall
AddressListsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::AddressList* Item;
  this->Item(Index, (Outlook_xp::AddressList**)&Item);
  return Item;
}

// *********************************************************************//
// DispIntf:  AddressList
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063049-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AddressListDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AddressListDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AddressListDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AddressListDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_AddressEntries(Outlook_xp::AddressEntries** AddressEntries/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddressEntries"), DISPID(256));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AddressEntries**)AddressEntries /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AddressEntriesPtr __fastcall
AddressListDispT<T>::get_AddressEntries(void)
{
  Outlook_xp::AddressEntriesPtr AddressEntries;
  this->get_AddressEntries(&AddressEntries);
  return AddressEntries;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_ID(BSTR* ID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressListDispT<T>::get_ID(void)
{
  BSTR ID;
  this->get_ID((BSTR*)&ID);
  return ID;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Index(long* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(91));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Index /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AddressListDispT<T>::get_Index(void)
{
  long Index;
  this->get_Index((long*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_IsReadOnly(VARIANT_BOOL* IsReadOnly/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsReadOnly"), DISPID(61463));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsReadOnly /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
AddressListDispT<T>::get_IsReadOnly(void)
{
  VARIANT_BOOL IsReadOnly;
  this->get_IsReadOnly((VARIANT_BOOL*)&IsReadOnly);
  return IsReadOnly;
}

template <class T> HRESULT __fastcall
AddressListDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AddressListDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

// *********************************************************************//
// DispIntf:  SyncObjects
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063086-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
SyncObjectsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
SyncObjectsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
SyncObjectsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
SyncObjectsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
SyncObjectsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::SyncObject** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::SyncObject**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::SyncObject* __fastcall
SyncObjectsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::SyncObject* Item;
  this->Item(Index, (Outlook_xp::SyncObject**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
SyncObjectsDispT<T>::get_AppFolders(Outlook_xp::_SyncObject** AppFolders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AppFolders"), DISPID(64074));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_SyncObject**)AppFolders /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_SyncObjectPtr __fastcall
SyncObjectsDispT<T>::get_AppFolders(void)
{
  Outlook_xp::_SyncObjectPtr AppFolders;
  this->get_AppFolders(&AppFolders);
  return AppFolders;
}

// *********************************************************************//
// SmartIntf: TCOM_SyncObject
// Interface: _SyncObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_SyncObjectT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_SyncObjectT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_SyncObjectT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_SyncObjectT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  return (*this)->get_Name(Name);
}

template <class T> BSTR __fastcall
TCOM_SyncObjectT<T>::get_Name(void)
{
  BSTR Name = 0;
  OLECHECK(this->get_Name((BSTR*)&Name));
  return Name;
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::Start(void)
{
  return (*this)->Start();
}

template <class T> HRESULT __fastcall
TCOM_SyncObjectT<T>::Stop(void)
{
  return (*this)->Stop();
}

// *********************************************************************//
// DispIntf:  _SyncObject
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063083-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_SyncObjectDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_SyncObjectDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_SyncObjectDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_SyncObjectDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(8448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_SyncObjectDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::Start()
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(8449));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_SyncObjectDispT<T>::Stop()
{
  _TDispID _dispid(*this, OLETEXT("Stop"), DISPID(8450));
  return OleFunction(_dispid);
}

// *********************************************************************//
// DispIntf:  SyncObjectEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063085-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
SyncObjectEventsDispT<T>::SyncStart()
{
  _TDispID _dispid(/* SyncStart */ DISPID(61441));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
SyncObjectEventsDispT<T>::Progress(Outlook_xp::OlSyncState State/*[in]*/, BSTR Description/*[in]*/, 
                                   long Value/*[in]*/, long Max/*[in]*/)
{
  _TDispID _dispid(/* Progress */ DISPID(61442));
  TAutoArgs<4> _args;
  _args[1] = (int)State /*[VT_USERDEFINED:0]*/;
  _args[2] = Description /*[VT_BSTR:0]*/;
  _args[3] = Value /*[VT_I4:0]*/;
  _args[4] = Max /*[VT_I4:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
SyncObjectEventsDispT<T>::OnError(long Code/*[in]*/, BSTR Description/*[in]*/)
{
  _TDispID _dispid(/* OnError */ DISPID(61443));
  TAutoArgs<2> _args;
  _args[1] = Code /*[VT_I4:0]*/;
  _args[2] = Description /*[VT_BSTR:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
SyncObjectEventsDispT<T>::SyncEnd()
{
  _TDispID _dispid(/* SyncEnd */ DISPID(61444));
  OleProcedure(_dispid);
}

// *********************************************************************//
// SmartIntf: TCOM_Inspector
// Interface: _Inspector
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_InspectorT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_InspectorT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_InspectorT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/)
{
  return (*this)->get_CommandBars(CommandBars);
}

template <class T> Office_xp::CommandBarsPtr __fastcall
TCOM_InspectorT<T>::get_CommandBars(void)
{
  Office_xp::CommandBarsPtr CommandBars;
  OLECHECK(this->get_CommandBars((Office_xp::CommandBarsPtr*)&CommandBars));
  return CommandBars;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_CurrentItem(LPDISPATCH* CurrentItem/*[out,retval]*/)
{
  return (*this)->get_CurrentItem(CurrentItem);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorT<T>::get_CurrentItem(void)
{
  LPDISPATCH CurrentItem;
  OLECHECK(this->get_CurrentItem((LPDISPATCH*)&CurrentItem));
  return CurrentItem;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_EditorType(Outlook_xp::OlEditorType* EditorType/*[out,retval]*/)
{
  return (*this)->get_EditorType(EditorType);
}

template <class T> Outlook_xp::OlEditorType __fastcall
TCOM_InspectorT<T>::get_EditorType(void)
{
  Outlook_xp::OlEditorType EditorType;
  OLECHECK(this->get_EditorType((Outlook_xp::OlEditorType*)&EditorType));
  return EditorType;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_ModifiedFormPages(LPDISPATCH* ModifiedFormPages/*[out,retval]*/)
{
  return (*this)->get_ModifiedFormPages(ModifiedFormPages);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorT<T>::get_ModifiedFormPages(void)
{
  LPDISPATCH ModifiedFormPages;
  OLECHECK(this->get_ModifiedFormPages((LPDISPATCH*)&ModifiedFormPages));
  return ModifiedFormPages;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::HideFormPage(BSTR PageName/*[in]*/)
{
  return (*this)->HideFormPage(PageName);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::IsWordMail(VARIANT_BOOL* IsWordMail/*[out,retval]*/)
{
  return (*this)->IsWordMail(IsWordMail);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_InspectorT<T>::IsWordMail(void)
{
  VARIANT_BOOL IsWordMail;
  OLECHECK(this->IsWordMail((VARIANT_BOOL*)&IsWordMail));
  return IsWordMail;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::SetCurrentFormPage(BSTR PageName/*[in]*/)
{
  return (*this)->SetCurrentFormPage(PageName);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::ShowFormPage(BSTR PageName/*[in]*/)
{
  return (*this)->ShowFormPage(PageName);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_HTMLEditor(LPDISPATCH* HTMLEditor/*[out,retval]*/)
{
  return (*this)->get_HTMLEditor(HTMLEditor);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorT<T>::get_HTMLEditor(void)
{
  LPDISPATCH HTMLEditor;
  OLECHECK(this->get_HTMLEditor((LPDISPATCH*)&HTMLEditor));
  return HTMLEditor;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_WordEditor(LPDISPATCH* WordEditor/*[out,retval]*/)
{
  return (*this)->get_WordEditor(WordEditor);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorT<T>::get_WordEditor(void)
{
  LPDISPATCH WordEditor;
  OLECHECK(this->get_WordEditor((LPDISPATCH*)&WordEditor));
  return WordEditor;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  return (*this)->get_Caption(Caption);
}

template <class T> BSTR __fastcall
TCOM_InspectorT<T>::get_Caption(void)
{
  BSTR Caption = 0;
  OLECHECK(this->get_Caption((BSTR*)&Caption));
  return Caption;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOM_InspectorT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Left(long* Left/*[out,retval]*/)
{
  return (*this)->get_Left(Left);
}

template <class T> long __fastcall
TCOM_InspectorT<T>::get_Left(void)
{
  long Left;
  OLECHECK(this->get_Left((long*)&Left));
  return Left;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::set_Left(long Left/*[in]*/)
{
  return (*this)->set_Left(Left);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Top(long* Top/*[out,retval]*/)
{
  return (*this)->get_Top(Top);
}

template <class T> long __fastcall
TCOM_InspectorT<T>::get_Top(void)
{
  long Top;
  OLECHECK(this->get_Top((long*)&Top));
  return Top;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::set_Top(long Top/*[in]*/)
{
  return (*this)->set_Top(Top);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOM_InspectorT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/)
{
  return (*this)->get_WindowState(WindowState);
}

template <class T> Outlook_xp::OlWindowState __fastcall
TCOM_InspectorT<T>::get_WindowState(void)
{
  Outlook_xp::OlWindowState WindowState;
  OLECHECK(this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState));
  return WindowState;
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/)
{
  return (*this)->set_WindowState(WindowState);
}

template <class T> HRESULT __fastcall
TCOM_InspectorT<T>::Activate(void)
{
  return (*this)->Activate();
}

// *********************************************************************//
// DispIntf:  _Inspector
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063005-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_InspectorDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_InspectorDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_InspectorDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_CommandBars(Office_xp::CommandBars** CommandBars/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CommandBars"), DISPID(8448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Office_xp::CommandBars**)CommandBars /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Office_xp::CommandBarsPtr __fastcall
_InspectorDispT<T>::get_CommandBars(void)
{
  Office_xp::CommandBarsPtr CommandBars;
  this->get_CommandBars(&CommandBars);
  return CommandBars;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_CurrentItem(LPDISPATCH* CurrentItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentItem"), DISPID(8450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CurrentItem /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorDispT<T>::get_CurrentItem(void)
{
  LPDISPATCH CurrentItem;
  this->get_CurrentItem((LPDISPATCH*)&CurrentItem);
  return CurrentItem;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_EditorType(Outlook_xp::OlEditorType* EditorType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditorType"), DISPID(8464));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)EditorType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlEditorType __fastcall
_InspectorDispT<T>::get_EditorType(void)
{
  Outlook_xp::OlEditorType EditorType;
  this->get_EditorType((Outlook_xp::OlEditorType*)&EditorType);
  return EditorType;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_ModifiedFormPages(LPDISPATCH* ModifiedFormPages/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModifiedFormPages"), DISPID(8454));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ModifiedFormPages /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorDispT<T>::get_ModifiedFormPages(void)
{
  LPDISPATCH ModifiedFormPages;
  this->get_ModifiedFormPages((LPDISPATCH*)&ModifiedFormPages);
  return ModifiedFormPages;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(8451));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(8452));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::HideFormPage(BSTR PageName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideFormPage"), DISPID(8456));
  TAutoArgs<1> _args;
  _args[1] = PageName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::IsWordMail(VARIANT_BOOL* IsWordMail/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsWordMail"), DISPID(8453));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsWordMail /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_InspectorDispT<T>::IsWordMail(void)
{
  VARIANT_BOOL IsWordMail;
  this->IsWordMail((VARIANT_BOOL*)&IsWordMail);
  return IsWordMail;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::SetCurrentFormPage(BSTR PageName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurrentFormPage"), DISPID(8460));
  TAutoArgs<1> _args;
  _args[1] = PageName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::ShowFormPage(BSTR PageName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowFormPage"), DISPID(8457));
  TAutoArgs<1> _args;
  _args[1] = PageName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_HTMLEditor(LPDISPATCH* HTMLEditor/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLEditor"), DISPID(8462));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HTMLEditor /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorDispT<T>::get_HTMLEditor(void)
{
  LPDISPATCH HTMLEditor;
  this->get_HTMLEditor((LPDISPATCH*)&HTMLEditor);
  return HTMLEditor;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_WordEditor(LPDISPATCH* WordEditor/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WordEditor"), DISPID(8463));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(WordEditor /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorDispT<T>::get_WordEditor(void)
{
  LPDISPATCH WordEditor;
  this->get_WordEditor((LPDISPATCH*)&WordEditor);
  return WordEditor;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(8465));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Caption /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_InspectorDispT<T>::get_Caption(void)
{
  BSTR Caption;
  this->get_Caption((BSTR*)&Caption);
  return Caption;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_InspectorDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8468));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Left(long* Left/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(8469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Left /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_InspectorDispT<T>::get_Left(void)
{
  long Left;
  this->get_Left((long*)&Left);
  return Left;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::set_Left(long Left/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(8469));
  TAutoArgs<1> _args;
  _args[1] = Left /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Top(long* Top/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(8470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Top /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_InspectorDispT<T>::get_Top(void)
{
  long Top;
  this->get_Top((long*)&Top);
  return Top;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::set_Top(long Top/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(8470));
  TAutoArgs<1> _args;
  _args[1] = Top /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(8471));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_InspectorDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(8471));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::get_WindowState(Outlook_xp::OlWindowState* WindowState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowState"), DISPID(8466));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)WindowState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlWindowState __fastcall
_InspectorDispT<T>::get_WindowState(void)
{
  Outlook_xp::OlWindowState WindowState;
  this->get_WindowState((Outlook_xp::OlWindowState*)&WindowState);
  return WindowState;
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::set_WindowState(Outlook_xp::OlWindowState WindowState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowState"), DISPID(8466));
  TAutoArgs<1> _args;
  _args[1] = (int)WindowState /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_InspectorDispT<T>::Activate()
{
  _TDispID _dispid(*this, OLETEXT("Activate"), DISPID(8467));
  return OleFunction(_dispid);
}

// *********************************************************************//
// SmartIntf: TCOM_Explorers
// Interface: _Explorers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ExplorersT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ExplorersT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ExplorersT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ExplorersT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_ExplorersT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Explorer** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::Explorer* __fastcall
TCOM_ExplorersT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Explorer* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::Explorer**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ExplorersT<T>::Add(VARIANT Folder/*[in]*/, 
                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/, 
                        Outlook_xp::_Explorer** Explorer/*[out,retval]*/)
{
  return (*this)->Add(Folder, DisplayMode, Explorer);
}

template <class T> Outlook_xp::_Explorer* __fastcall
TCOM_ExplorersT<T>::Add(VARIANT Folder/*[in]*/, 
                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/)
{
  Outlook_xp::_Explorer* Explorer;
  OLECHECK(this->Add(Folder/*[in]*/, DisplayMode/*[in,opt]*/, (Outlook_xp::_Explorer**)&Explorer));
  return Explorer;
}

// *********************************************************************//
// DispIntf:  _Explorers
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ExplorersDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ExplorersDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ExplorersDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ExplorersDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ExplorersDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ExplorersDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Explorer** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Explorer**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Explorer* __fastcall
_ExplorersDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Explorer* Item;
  this->Item(Index, (Outlook_xp::Explorer**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ExplorersDispT<T>::Add(VARIANT Folder/*[in]*/, 
                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/, 
                        Outlook_xp::_Explorer** Explorer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<2> _args;
  _args[1] = Folder /*[VT_VARIANT:0]*/;
  _args[2] = (int)DisplayMode /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Explorer**)Explorer /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Explorer* __fastcall
_ExplorersDispT<T>::Add(VARIANT Folder/*[in]*/, 
                        Outlook_xp::OlFolderDisplayMode DisplayMode/*[in,opt]*/)
{
  Outlook_xp::_Explorer* Explorer;
  this->Add(Folder, DisplayMode, (Outlook_xp::_Explorer**)&Explorer);
  return Explorer;
}

// *********************************************************************//
// DispIntf:  ExplorerEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304F-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ExplorerEventsDispT<T>::Activate()
{
  _TDispID _dispid(*this, OLETEXT("Activate"), DISPID(61441));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::FolderSwitch()
{
  _TDispID _dispid(*this, OLETEXT("FolderSwitch"), DISPID(61442));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, 
                                           VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BeforeFolderSwitch"), DISPID(61443));
  TAutoArgs<2> _args;
  _args[1] = NewFolder /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::ViewSwitch()
{
  _TDispID _dispid(*this, OLETEXT("ViewSwitch"), DISPID(61444));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BeforeViewSwitch"), DISPID(61445));
  TAutoArgs<2> _args;
  _args[1] = NewView /*[VT_VARIANT:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::Deactivate()
{
  _TDispID _dispid(*this, OLETEXT("Deactivate"), DISPID(61446));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::SelectionChange()
{
  _TDispID _dispid(*this, OLETEXT("SelectionChange"), DISPID(61447));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ExplorerEventsDispT<T>::Close()
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61448));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  ExplorerEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300F-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::Activate()
{
  _TDispID _dispid(/* Activate */ DISPID(61441));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::FolderSwitch()
{
  _TDispID _dispid(/* FolderSwitch */ DISPID(61442));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeFolderSwitch(LPDISPATCH NewFolder/*[in]*/, 
                                              VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeFolderSwitch */ DISPID(61443));
  TAutoArgs<2> _args;
  _args[1] = NewFolder /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::ViewSwitch()
{
  _TDispID _dispid(/* ViewSwitch */ DISPID(61444));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeViewSwitch(VARIANT NewView/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeViewSwitch */ DISPID(61445));
  TAutoArgs<2> _args;
  _args[1] = NewView /*[VT_VARIANT:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::Deactivate()
{
  _TDispID _dispid(/* Deactivate */ DISPID(61446));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::SelectionChange()
{
  _TDispID _dispid(/* SelectionChange */ DISPID(61447));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::Close()
{
  _TDispID _dispid(/* Close */ DISPID(61448));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMaximize */ DISPID(64017));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMinimize */ DISPID(64018));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeMove(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMove */ DISPID(64019));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ExplorerEvents_10DispT<T>::BeforeSize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeSize */ DISPID(64020));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> void __fastcall
ExplorerEvents_10DispT<T>::BeforeItemCopy(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeItemCopy */ DISPID(64014));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ExplorerEvents_10DispT<T>::BeforeItemCut(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeItemCut */ DISPID(64015));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ExplorerEvents_10DispT<T>::BeforeItemPaste(VARIANT* ClipboardContent/*[in]*/, 
                                           Outlook_xp::MAPIFolder* Target/*[in]*/, 
                                           VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeItemPaste */ DISPID(64016));
  TAutoArgs<3> _args;
  _args[1] = ClipboardContent /*[VT_VARIANT:1]*/;
  _args[2] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Target /*[VT_USERDEFINED:1]*/;
  _args[3] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_Inspectors
// Interface: _Inspectors
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_InspectorsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_InspectorsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_InspectorsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_InspectorsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_InspectorsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Inspector** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::Inspector* __fastcall
TCOM_InspectorsT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Inspector* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::Inspector**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_InspectorsT<T>::Add(LPDISPATCH Item/*[in]*/, Outlook_xp::_Inspector** Inspector/*[out,retval]*/)
{
  return (*this)->Add(Item, Inspector);
}

template <class T> Outlook_xp::_Inspector* __fastcall
TCOM_InspectorsT<T>::Add(LPDISPATCH Item/*[in]*/)
{
  Outlook_xp::_Inspector* Inspector;
  OLECHECK(this->Add(Item/*[in]*/, (Outlook_xp::_Inspector**)&Inspector));
  return Inspector;
}

// *********************************************************************//
// DispIntf:  _Inspectors
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063008-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_InspectorsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_InspectorsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_InspectorsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_InspectorsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_InspectorsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_InspectorsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Inspector** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Inspector**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Inspector* __fastcall
_InspectorsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Inspector* Item;
  this->Item(Index, (Outlook_xp::Inspector**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_InspectorsDispT<T>::Add(LPDISPATCH Item/*[in]*/, Outlook_xp::_Inspector** Inspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)Inspector /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Inspector* __fastcall
_InspectorsDispT<T>::Add(LPDISPATCH Item/*[in]*/)
{
  Outlook_xp::_Inspector* Inspector;
  this->Add(Item, (Outlook_xp::_Inspector**)&Inspector);
  return Inspector;
}

// *********************************************************************//
// DispIntf:  InspectorEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
InspectorEventsDispT<T>::Activate()
{
  _TDispID _dispid(*this, OLETEXT("Activate"), DISPID(61441));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
InspectorEventsDispT<T>::Deactivate()
{
  _TDispID _dispid(*this, OLETEXT("Deactivate"), DISPID(61446));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
InspectorEventsDispT<T>::Close()
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61448));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  InspectorEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::Activate()
{
  _TDispID _dispid(/* Activate */ DISPID(61441));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::Deactivate()
{
  _TDispID _dispid(/* Deactivate */ DISPID(61446));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::Close()
{
  _TDispID _dispid(/* Close */ DISPID(61448));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::BeforeMaximize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMaximize */ DISPID(64017));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::BeforeMinimize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMinimize */ DISPID(64018));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::BeforeMove(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeMove */ DISPID(64019));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
InspectorEvents_10DispT<T>::BeforeSize(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeSize */ DISPID(64020));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  Search
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
SearchDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
SearchDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
SearchDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
SearchDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
SearchDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Filter(BSTR* Filter/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Filter"), DISPID(64100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Filter /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
SearchDispT<T>::get_Filter(void)
{
  BSTR Filter;
  this->get_Filter((BSTR*)&Filter);
  return Filter;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_IsSynchronous(VARIANT_BOOL* IsSynchronous/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSynchronous"), DISPID(64104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsSynchronous /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
SearchDispT<T>::get_IsSynchronous(void)
{
  VARIANT_BOOL IsSynchronous;
  this->get_IsSynchronous((VARIANT_BOOL*)&IsSynchronous);
  return IsSynchronous;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Results(Outlook_xp::_Results** Results/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Results"), DISPID(64105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Results**)Results /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ResultsPtr __fastcall
SearchDispT<T>::get_Results(void)
{
  Outlook_xp::_ResultsPtr Results;
  this->get_Results(&Results);
  return Results;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_SearchSubFolders(VARIANT_BOOL* SearchSubFolders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SearchSubFolders"), DISPID(64102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SearchSubFolders /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
SearchDispT<T>::get_SearchSubFolders(void)
{
  VARIANT_BOOL SearchSubFolders;
  this->get_SearchSubFolders((VARIANT_BOOL*)&SearchSubFolders);
  return SearchSubFolders;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::Stop()
{
  _TDispID _dispid(*this, OLETEXT("Stop"), DISPID(64103));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Tag(BSTR* Tag/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tag"), DISPID(64109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Tag /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
SearchDispT<T>::get_Tag(void)
{
  BSTR Tag;
  this->get_Tag((BSTR*)&Tag);
  return Tag;
}

template <class T> HRESULT __fastcall
SearchDispT<T>::get_Scope(BSTR* Scope/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scope"), DISPID(64165));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Scope /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
SearchDispT<T>::get_Scope(void)
{
  BSTR Scope;
  this->get_Scope((BSTR*)&Scope);
  return Scope;
}

// *********************************************************************//
// SmartIntf: TCOM_Results
// Interface: _Results
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ResultsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ResultsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ResultsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_ResultsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Item(Index/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  return (*this)->get_RawTable(RawTable);
}

template <class T> LPUNKNOWN __fastcall
TCOM_ResultsT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  OLECHECK(this->get_RawTable((LPUNKNOWN*)&RawTable));
  return RawTable;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::GetFirst(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetFirst(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::GetFirst(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetFirst((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::GetLast(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetLast(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::GetLast(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetLast((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::GetNext(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetNext(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::GetNext(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetNext((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::GetPrevious(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->GetPrevious(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ResultsT<T>::GetPrevious(void)
{
  LPDISPATCH Item;
  OLECHECK(this->GetPrevious((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::ResetColumns(void)
{
  return (*this)->ResetColumns();
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::SetColumns(BSTR Columns/*[in]*/)
{
  return (*this)->SetColumns(Columns);
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/)
{
  return (*this)->Sort(Property, Descending);
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/)
{
  return (*this)->get_DefaultItemType(DefaultItemType);
}

template <class T> Outlook_xp::OlItemType __fastcall
TCOM_ResultsT<T>::get_DefaultItemType(void)
{
  Outlook_xp::OlItemType DefaultItemType;
  OLECHECK(this->get_DefaultItemType((Outlook_xp::OlItemType*)&DefaultItemType));
  return DefaultItemType;
}

template <class T> HRESULT __fastcall
TCOM_ResultsT<T>::set_DefaultItemType(Outlook_xp::OlItemType DefaultItemType/*[in]*/)
{
  return (*this)->set_DefaultItemType(DefaultItemType);
}

// *********************************************************************//
// DispIntf:  _Results
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006300C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ResultsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ResultsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ResultsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ResultsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_RawTable(LPUNKNOWN* RawTable/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RawTable"), DISPID(90));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RawTable /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_ResultsDispT<T>::get_RawTable(void)
{
  LPUNKNOWN RawTable;
  this->get_RawTable((LPUNKNOWN*)&RawTable);
  return RawTable;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::GetFirst(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFirst"), DISPID(86));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::GetFirst(void)
{
  LPDISPATCH Item;
  this->GetFirst((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::GetLast(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLast"), DISPID(88));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::GetLast(void)
{
  LPDISPATCH Item;
  this->GetLast((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::GetNext(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNext"), DISPID(87));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::GetNext(void)
{
  LPDISPATCH Item;
  this->GetNext((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::GetPrevious(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPrevious"), DISPID(89));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ResultsDispT<T>::GetPrevious(void)
{
  LPDISPATCH Item;
  this->GetPrevious((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::ResetColumns()
{
  _TDispID _dispid(*this, OLETEXT("ResetColumns"), DISPID(93));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::SetColumns(BSTR Columns/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetColumns"), DISPID(92));
  TAutoArgs<1> _args;
  _args[1] = Columns /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::Sort(BSTR Property/*[in]*/, VARIANT Descending/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(97));
  TAutoArgs<2> _args;
  _args[1] = Property /*[VT_BSTR:0]*/;
  _args[2] = Descending /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::get_DefaultItemType(Outlook_xp::OlItemType* DefaultItemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultItemType"), DISPID(64143));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DefaultItemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlItemType __fastcall
_ResultsDispT<T>::get_DefaultItemType(void)
{
  Outlook_xp::OlItemType DefaultItemType;
  this->get_DefaultItemType((Outlook_xp::OlItemType*)&DefaultItemType);
  return DefaultItemType;
}

template <class T> HRESULT __fastcall
_ResultsDispT<T>::set_DefaultItemType(Outlook_xp::OlItemType DefaultItemType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultItemType"), DISPID(64143));
  TAutoArgs<1> _args;
  _args[1] = (int)DefaultItemType /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_Reminders
// Interface: _Reminders
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_RemindersT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_RemindersT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_RemindersT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_RemindersT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_RemindersT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::_Reminder** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::_Reminder* __fastcall
TCOM_RemindersT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::_Reminder* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::_Reminder**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::Remove(VARIANT Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

template <class T> HRESULT __fastcall
TCOM_RemindersT<T>::_NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/)
{
  return (*this)->_NewEnum(ppvObject);
}

template <class T> LPUNKNOWN __fastcall
TCOM_RemindersT<T>::_NewEnum(void)
{
  LPUNKNOWN ppvObject;
  OLECHECK(this->_NewEnum((LPUNKNOWN*)&ppvObject));
  return ppvObject;
}

// *********************************************************************//
// DispIntf:  _Reminders
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B1-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_RemindersDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_RemindersDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_RemindersDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_RemindersDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_RemindersDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_RemindersDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::_Reminder** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Reminder**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::_Reminder* __fastcall
_RemindersDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::_Reminder* Item;
  this->Item(Index, (Outlook_xp::_Reminder**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(82));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemindersDispT<T>::_NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppvObject /*[VT_UNKNOWN:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_RemindersDispT<T>::_NewEnum(void)
{
  LPUNKNOWN ppvObject;
  this->_NewEnum((LPUNKNOWN*)&ppvObject);
  return ppvObject;
}

// *********************************************************************//
// SmartIntf: TCOM_Reminder
// Interface: _Reminder
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ReminderT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ReminderT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ReminderT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ReminderT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::Dismiss(void)
{
  return (*this)->Dismiss();
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::Snooze(VARIANT SnoozeTime/*[in,opt]*/)
{
  return (*this)->Snooze(SnoozeTime);
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  return (*this)->get_Caption(Caption);
}

template <class T> BSTR __fastcall
TCOM_ReminderT<T>::get_Caption(void)
{
  BSTR Caption = 0;
  OLECHECK(this->get_Caption((BSTR*)&Caption));
  return Caption;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_IsVisible(VARIANT_BOOL* IsVisible/*[out,retval]*/)
{
  return (*this)->get_IsVisible(IsVisible);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ReminderT<T>::get_IsVisible(void)
{
  VARIANT_BOOL IsVisible;
  OLECHECK(this->get_IsVisible((VARIANT_BOOL*)&IsVisible));
  return IsVisible;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_Item(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->get_Item(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ReminderT<T>::get_Item(void)
{
  LPDISPATCH Item;
  OLECHECK(this->get_Item((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_NextReminderDate(DATE* NextReminderDate/*[out,retval]*/)
{
  return (*this)->get_NextReminderDate(NextReminderDate);
}

template <class T> DATE __fastcall
TCOM_ReminderT<T>::get_NextReminderDate(void)
{
  DATE NextReminderDate;
  OLECHECK(this->get_NextReminderDate((DATE*)&NextReminderDate));
  return NextReminderDate;
}

template <class T> HRESULT __fastcall
TCOM_ReminderT<T>::get_OriginalReminderDate(DATE* OriginalReminderDate/*[out,retval]*/)
{
  return (*this)->get_OriginalReminderDate(OriginalReminderDate);
}

template <class T> DATE __fastcall
TCOM_ReminderT<T>::get_OriginalReminderDate(void)
{
  DATE OriginalReminderDate;
  OLECHECK(this->get_OriginalReminderDate((DATE*)&OriginalReminderDate));
  return OriginalReminderDate;
}

// *********************************************************************//
// DispIntf:  _Reminder
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630B0-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ReminderDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ReminderDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ReminderDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ReminderDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::Dismiss()
{
  _TDispID _dispid(*this, OLETEXT("Dismiss"), DISPID(64154));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::Snooze(VARIANT SnoozeTime/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Snooze"), DISPID(64155));
  TAutoArgs<1> _args;
  _args[1] = SnoozeTime /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Caption(BSTR* Caption/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Caption /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReminderDispT<T>::get_Caption(void)
{
  BSTR Caption;
  this->get_Caption((BSTR*)&Caption);
  return Caption;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_IsVisible(VARIANT_BOOL* IsVisible/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsVisible"), DISPID(64157));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsVisible /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ReminderDispT<T>::get_IsVisible(void)
{
  VARIANT_BOOL IsVisible;
  this->get_IsVisible((VARIANT_BOOL*)&IsVisible);
  return IsVisible;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_Item(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(64158));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ReminderDispT<T>::get_Item(void)
{
  LPDISPATCH Item;
  this->get_Item((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_NextReminderDate(DATE* NextReminderDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NextReminderDate"), DISPID(64159));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NextReminderDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ReminderDispT<T>::get_NextReminderDate(void)
{
  DATE NextReminderDate;
  this->get_NextReminderDate((DATE*)&NextReminderDate);
  return NextReminderDate;
}

template <class T> HRESULT __fastcall
_ReminderDispT<T>::get_OriginalReminderDate(DATE* OriginalReminderDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginalReminderDate"), DISPID(64160));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OriginalReminderDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ReminderDispT<T>::get_OriginalReminderDate(void)
{
  DATE OriginalReminderDate;
  this->get_OriginalReminderDate((DATE*)&OriginalReminderDate);
  return OriginalReminderDate;
}

// *********************************************************************//
// DispIntf:  Actions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303E-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ActionsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ActionsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ActionsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ActionsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ActionsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ActionsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Action** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Action**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Action* __fastcall
ActionsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Action* Item;
  this->Item(Index, (Outlook_xp::Action**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::Add(Outlook_xp::Action** Action/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Action**)Action /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Action* __fastcall
ActionsDispT<T>::Add(void)
{
  Outlook_xp::Action* Action;
  this->Add((Outlook_xp::Action**)&Action);
  return Action;
}

template <class T> HRESULT __fastcall
ActionsDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(82));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ApplicationEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006304E-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ApplicationEventsDispT<T>::ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemSend"), DISPID(61442));
  TAutoArgs<2> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ApplicationEventsDispT<T>::NewMail()
{
  _TDispID _dispid(*this, OLETEXT("NewMail"), DISPID(61443));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ApplicationEventsDispT<T>::Reminder(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reminder"), DISPID(61444));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ApplicationEventsDispT<T>::OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OptionsPagesAdd"), DISPID(61445));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ApplicationEventsDispT<T>::Startup()
{
  _TDispID _dispid(*this, OLETEXT("Startup"), DISPID(61446));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ApplicationEventsDispT<T>::Quit()
{
  _TDispID _dispid(*this, OLETEXT("Quit"), DISPID(61447));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  PropertyPages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063080-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
PropertyPagesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
PropertyPagesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
PropertyPagesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PropertyPagesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
PropertyPagesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PropertyPagesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::Add(VARIANT Page/*[in]*/, BSTR Title/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<2> _args;
  _args[1] = Page /*[VT_VARIANT:0]*/;
  _args[2] = Title /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
PropertyPagesDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_AppointmentItem
// Interface: _AppointmentItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_AppointmentItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_AppointmentItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_AppointmentItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_AppointmentItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_AppointmentItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_AppointmentItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_AppointmentItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_AppointmentItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_AppointmentItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_AppointmentItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_AppointmentItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_AppointmentItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_AppointmentItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_AppointmentItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_AppointmentItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_AppointmentItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_AppointmentItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                               LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_AppointmentItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_AllDayEvent(VARIANT_BOOL* AllDayEvent/*[out,retval]*/)
{
  return (*this)->get_AllDayEvent(AllDayEvent);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_AllDayEvent(void)
{
  VARIANT_BOOL AllDayEvent;
  OLECHECK(this->get_AllDayEvent((VARIANT_BOOL*)&AllDayEvent));
  return AllDayEvent;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_AllDayEvent(VARIANT_BOOL AllDayEvent/*[in]*/)
{
  return (*this)->set_AllDayEvent(AllDayEvent);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_BusyStatus(Outlook_xp::OlBusyStatus* BusyStatus/*[out,retval]*/)
{
  return (*this)->get_BusyStatus(BusyStatus);
}

template <class T> Outlook_xp::OlBusyStatus __fastcall
TCOM_AppointmentItemT<T>::get_BusyStatus(void)
{
  Outlook_xp::OlBusyStatus BusyStatus;
  OLECHECK(this->get_BusyStatus((Outlook_xp::OlBusyStatus*)&BusyStatus));
  return BusyStatus;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_BusyStatus(Outlook_xp::OlBusyStatus BusyStatus/*[in]*/)
{
  return (*this)->set_BusyStatus(BusyStatus);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Duration(long* Duration/*[out,retval]*/)
{
  return (*this)->get_Duration(Duration);
}

template <class T> long __fastcall
TCOM_AppointmentItemT<T>::get_Duration(void)
{
  long Duration;
  OLECHECK(this->get_Duration((long*)&Duration));
  return Duration;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Duration(long Duration/*[in]*/)
{
  return (*this)->set_Duration(Duration);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_End(DATE* End/*[out,retval]*/)
{
  return (*this)->get_End(End);
}

template <class T> DATE __fastcall
TCOM_AppointmentItemT<T>::get_End(void)
{
  DATE End;
  OLECHECK(this->get_End((DATE*)&End));
  return End;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_End(DATE End/*[in]*/)
{
  return (*this)->set_End(End);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_IsOnlineMeeting(VARIANT_BOOL* IsOnlineMeeting/*[out,retval]*/)
{
  return (*this)->get_IsOnlineMeeting(IsOnlineMeeting);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_IsOnlineMeeting(void)
{
  VARIANT_BOOL IsOnlineMeeting;
  OLECHECK(this->get_IsOnlineMeeting((VARIANT_BOOL*)&IsOnlineMeeting));
  return IsOnlineMeeting;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_IsOnlineMeeting(VARIANT_BOOL IsOnlineMeeting/*[in]*/)
{
  return (*this)->set_IsOnlineMeeting(IsOnlineMeeting);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/)
{
  return (*this)->get_IsRecurring(IsRecurring);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_IsRecurring(void)
{
  VARIANT_BOOL IsRecurring;
  OLECHECK(this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring));
  return IsRecurring;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Location(BSTR* Location/*[out,retval]*/)
{
  return (*this)->get_Location(Location);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Location(void)
{
  BSTR Location = 0;
  OLECHECK(this->get_Location((BSTR*)&Location));
  return Location;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Location(BSTR Location/*[in]*/)
{
  return (*this)->set_Location(Location);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_MeetingStatus(Outlook_xp::OlMeetingStatus* MeetingStatus/*[out,retval]*/)
{
  return (*this)->get_MeetingStatus(MeetingStatus);
}

template <class T> Outlook_xp::OlMeetingStatus __fastcall
TCOM_AppointmentItemT<T>::get_MeetingStatus(void)
{
  Outlook_xp::OlMeetingStatus MeetingStatus;
  OLECHECK(this->get_MeetingStatus((Outlook_xp::OlMeetingStatus*)&MeetingStatus));
  return MeetingStatus;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_MeetingStatus(Outlook_xp::OlMeetingStatus MeetingStatus/*[in]*/)
{
  return (*this)->set_MeetingStatus(MeetingStatus);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingAutoStart(VARIANT_BOOL* NetMeetingAutoStart/*[out,retval]*/)
{
  return (*this)->get_NetMeetingAutoStart(NetMeetingAutoStart);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingAutoStart(void)
{
  VARIANT_BOOL NetMeetingAutoStart;
  OLECHECK(this->get_NetMeetingAutoStart((VARIANT_BOOL*)&NetMeetingAutoStart));
  return NetMeetingAutoStart;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetMeetingAutoStart(VARIANT_BOOL NetMeetingAutoStart/*[in]*/)
{
  return (*this)->set_NetMeetingAutoStart(NetMeetingAutoStart);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingOrganizerAlias(BSTR* NetMeetingOrganizerAlias/*[out,retval]*/)
{
  return (*this)->get_NetMeetingOrganizerAlias(NetMeetingOrganizerAlias);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingOrganizerAlias(void)
{
  BSTR NetMeetingOrganizerAlias = 0;
  OLECHECK(this->get_NetMeetingOrganizerAlias((BSTR*)&NetMeetingOrganizerAlias));
  return NetMeetingOrganizerAlias;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetMeetingOrganizerAlias(BSTR NetMeetingOrganizerAlias/*[in]*/)
{
  return (*this)->set_NetMeetingOrganizerAlias(NetMeetingOrganizerAlias);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/)
{
  return (*this)->get_NetMeetingServer(NetMeetingServer);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingServer(void)
{
  BSTR NetMeetingServer = 0;
  OLECHECK(this->get_NetMeetingServer((BSTR*)&NetMeetingServer));
  return NetMeetingServer;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/)
{
  return (*this)->set_NetMeetingServer(NetMeetingServer);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingType(Outlook_xp::OlNetMeetingType* NetMeetingType/*[out,retval]*/)
{
  return (*this)->get_NetMeetingType(NetMeetingType);
}

template <class T> Outlook_xp::OlNetMeetingType __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingType(void)
{
  Outlook_xp::OlNetMeetingType NetMeetingType;
  OLECHECK(this->get_NetMeetingType((Outlook_xp::OlNetMeetingType*)&NetMeetingType));
  return NetMeetingType;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetMeetingType(Outlook_xp::OlNetMeetingType NetMeetingType/*[in]*/)
{
  return (*this)->set_NetMeetingType(NetMeetingType);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_OptionalAttendees(BSTR* OptionalAttendees/*[out,retval]*/)
{
  return (*this)->get_OptionalAttendees(OptionalAttendees);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_OptionalAttendees(void)
{
  BSTR OptionalAttendees = 0;
  OLECHECK(this->get_OptionalAttendees((BSTR*)&OptionalAttendees));
  return OptionalAttendees;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_OptionalAttendees(BSTR OptionalAttendees/*[in]*/)
{
  return (*this)->set_OptionalAttendees(OptionalAttendees);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Organizer(BSTR* Organizer/*[out,retval]*/)
{
  return (*this)->get_Organizer(Organizer);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Organizer(void)
{
  BSTR Organizer = 0;
  OLECHECK(this->get_Organizer((BSTR*)&Organizer));
  return Organizer;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  return (*this)->get_Recipients(Recipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_AppointmentItemT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  OLECHECK(this->get_Recipients((Outlook_xp::RecipientsPtr*)&Recipients));
  return Recipients;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_RecurrenceState(Outlook_xp::OlRecurrenceState* RecurrenceState/*[out,retval]*/)
{
  return (*this)->get_RecurrenceState(RecurrenceState);
}

template <class T> Outlook_xp::OlRecurrenceState __fastcall
TCOM_AppointmentItemT<T>::get_RecurrenceState(void)
{
  Outlook_xp::OlRecurrenceState RecurrenceState;
  OLECHECK(this->get_RecurrenceState((Outlook_xp::OlRecurrenceState*)&RecurrenceState));
  return RecurrenceState;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReminderMinutesBeforeStart(long* ReminderMinutesBeforeStart/*[out,retval]*/)
{
  return (*this)->get_ReminderMinutesBeforeStart(ReminderMinutesBeforeStart);
}

template <class T> long __fastcall
TCOM_AppointmentItemT<T>::get_ReminderMinutesBeforeStart(void)
{
  long ReminderMinutesBeforeStart;
  OLECHECK(this->get_ReminderMinutesBeforeStart((long*)&ReminderMinutesBeforeStart));
  return ReminderMinutesBeforeStart;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReminderMinutesBeforeStart(long ReminderMinutesBeforeStart/*[in]*/)
{
  return (*this)->set_ReminderMinutesBeforeStart(ReminderMinutesBeforeStart);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  return (*this)->get_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  return (*this)->set_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  return (*this)->get_ReminderPlaySound(ReminderPlaySound);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  return (*this)->set_ReminderPlaySound(ReminderPlaySound);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  return (*this)->get_ReminderSet(ReminderSet);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
  return ReminderSet;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  return (*this)->set_ReminderSet(ReminderSet);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  return (*this)->get_ReminderSoundFile(ReminderSoundFile);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile = 0;
  OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  return (*this)->set_ReminderSoundFile(ReminderSoundFile);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ReplyTime(DATE* ReplyTime/*[out,retval]*/)
{
  return (*this)->get_ReplyTime(ReplyTime);
}

template <class T> DATE __fastcall
TCOM_AppointmentItemT<T>::get_ReplyTime(void)
{
  DATE ReplyTime;
  OLECHECK(this->get_ReplyTime((DATE*)&ReplyTime));
  return ReplyTime;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ReplyTime(DATE ReplyTime/*[in]*/)
{
  return (*this)->set_ReplyTime(ReplyTime);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_RequiredAttendees(BSTR* RequiredAttendees/*[out,retval]*/)
{
  return (*this)->get_RequiredAttendees(RequiredAttendees);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_RequiredAttendees(void)
{
  BSTR RequiredAttendees = 0;
  OLECHECK(this->get_RequiredAttendees((BSTR*)&RequiredAttendees));
  return RequiredAttendees;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_RequiredAttendees(BSTR RequiredAttendees/*[in]*/)
{
  return (*this)->set_RequiredAttendees(RequiredAttendees);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Resources(BSTR* Resources/*[out,retval]*/)
{
  return (*this)->get_Resources(Resources);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_Resources(void)
{
  BSTR Resources = 0;
  OLECHECK(this->get_Resources((BSTR*)&Resources));
  return Resources;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Resources(BSTR Resources/*[in]*/)
{
  return (*this)->set_Resources(Resources);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ResponseRequested(VARIANT_BOOL* ResponseRequested/*[out,retval]*/)
{
  return (*this)->get_ResponseRequested(ResponseRequested);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_ResponseRequested(void)
{
  VARIANT_BOOL ResponseRequested;
  OLECHECK(this->get_ResponseRequested((VARIANT_BOOL*)&ResponseRequested));
  return ResponseRequested;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ResponseRequested(VARIANT_BOOL ResponseRequested/*[in]*/)
{
  return (*this)->set_ResponseRequested(ResponseRequested);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ResponseStatus(Outlook_xp::OlResponseStatus* ResponseStatus/*[out,retval]*/)
{
  return (*this)->get_ResponseStatus(ResponseStatus);
}

template <class T> Outlook_xp::OlResponseStatus __fastcall
TCOM_AppointmentItemT<T>::get_ResponseStatus(void)
{
  Outlook_xp::OlResponseStatus ResponseStatus;
  OLECHECK(this->get_ResponseStatus((Outlook_xp::OlResponseStatus*)&ResponseStatus));
  return ResponseStatus;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Start(DATE* Start/*[out,retval]*/)
{
  return (*this)->get_Start(Start);
}

template <class T> DATE __fastcall
TCOM_AppointmentItemT<T>::get_Start(void)
{
  DATE Start;
  OLECHECK(this->get_Start((DATE*)&Start));
  return Start;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_Start(DATE Start/*[in]*/)
{
  return (*this)->set_Start(Start);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::ClearRecurrencePattern(void)
{
  return (*this)->ClearRecurrencePattern();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::ForwardAsVcal(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->ForwardAsVcal(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_AppointmentItemT<T>::ForwardAsVcal(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->ForwardAsVcal((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/)
{
  return (*this)->GetRecurrencePattern(RecurrencPattern);
}

template <class T> Outlook_xp::RecurrencePattern* __fastcall
TCOM_AppointmentItemT<T>::GetRecurrencePattern(void)
{
  Outlook_xp::RecurrencePattern* RecurrencPattern;
  OLECHECK(this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern));
  return RecurrencPattern;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                  VARIANT fNoUI/*[in,opt]*/, 
                                  VARIANT fAdditionalTextDialog/*[in,opt]*/, 
                                  Outlook_xp::MeetingItem** ResponseItem/*[out,retval]*/)
{
  return (*this)->Respond(Response, fNoUI, fAdditionalTextDialog, ResponseItem);
}

template <class T> Outlook_xp::MeetingItem* __fastcall
TCOM_AppointmentItemT<T>::Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                  VARIANT fNoUI/*[in,opt]*/, 
                                  VARIANT fAdditionalTextDialog/*[in,opt]*/)
{
  Outlook_xp::MeetingItem* ResponseItem;
  OLECHECK(this->Respond(Response/*[in]*/, fNoUI/*[in,opt]*/, fAdditionalTextDialog/*[in,opt]*/, (Outlook_xp::MeetingItem**)&ResponseItem));
  return ResponseItem;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::Send(void)
{
  return (*this)->Send();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingDocPathName(BSTR* NetMeetingDocPathName/*[out,retval]*/)
{
  return (*this)->get_NetMeetingDocPathName(NetMeetingDocPathName);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_NetMeetingDocPathName(void)
{
  BSTR NetMeetingDocPathName = 0;
  OLECHECK(this->get_NetMeetingDocPathName((BSTR*)&NetMeetingDocPathName));
  return NetMeetingDocPathName;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetMeetingDocPathName(BSTR NetMeetingDocPathName/*[in]*/)
{
  return (*this)->set_NetMeetingDocPathName(NetMeetingDocPathName);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_NetShowURL(BSTR* NetShowURL/*[out,retval]*/)
{
  return (*this)->get_NetShowURL(NetShowURL);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_NetShowURL(void)
{
  BSTR NetShowURL = 0;
  OLECHECK(this->get_NetShowURL((BSTR*)&NetShowURL));
  return NetShowURL;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_NetShowURL(BSTR NetShowURL/*[in]*/)
{
  return (*this)->set_NetShowURL(NetShowURL);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_AppointmentItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ConferenceServerAllowExternal(VARIANT_BOOL* ConferenceServerAllowExternal/*[out,retval]*/)
{
  return (*this)->get_ConferenceServerAllowExternal(ConferenceServerAllowExternal);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_ConferenceServerAllowExternal(void)
{
  VARIANT_BOOL ConferenceServerAllowExternal;
  OLECHECK(this->get_ConferenceServerAllowExternal((VARIANT_BOOL*)&ConferenceServerAllowExternal));
  return ConferenceServerAllowExternal;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ConferenceServerAllowExternal(VARIANT_BOOL ConferenceServerAllowExternal/*[in]*/)
{
  return (*this)->set_ConferenceServerAllowExternal(ConferenceServerAllowExternal);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ConferenceServerPassword(BSTR* ConferenceServerPassword/*[out,retval]*/)
{
  return (*this)->get_ConferenceServerPassword(ConferenceServerPassword);
}

template <class T> BSTR __fastcall
TCOM_AppointmentItemT<T>::get_ConferenceServerPassword(void)
{
  BSTR ConferenceServerPassword = 0;
  OLECHECK(this->get_ConferenceServerPassword((BSTR*)&ConferenceServerPassword));
  return ConferenceServerPassword;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_ConferenceServerPassword(BSTR ConferenceServerPassword/*[in]*/)
{
  return (*this)->set_ConferenceServerPassword(ConferenceServerPassword);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_AppointmentItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_AppointmentItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  return (*this)->get_InternetCodepage(InternetCodepage);
}

template <class T> long __fastcall
TCOM_AppointmentItemT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  return (*this)->set_InternetCodepage(InternetCodepage);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_AppointmentItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_AppointmentItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_AppointmentItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _AppointmentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063033-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_AppointmentItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_AppointmentItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_AppointmentItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_AppointmentItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_AppointmentItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_AppointmentItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_AppointmentItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_AppointmentItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_AppointmentItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_AppointmentItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_AppointmentItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_AppointmentItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_AppointmentItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_AppointmentItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_AppointmentItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_AppointmentItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_AppointmentItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                               LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_AppointmentItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_AllDayEvent(VARIANT_BOOL* AllDayEvent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AllDayEvent"), DISPID(33301));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AllDayEvent /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_AllDayEvent(void)
{
  VARIANT_BOOL AllDayEvent;
  this->get_AllDayEvent((VARIANT_BOOL*)&AllDayEvent);
  return AllDayEvent;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_AllDayEvent(VARIANT_BOOL AllDayEvent/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AllDayEvent"), DISPID(33301));
  TAutoArgs<1> _args;
  _args[1] = AllDayEvent /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_BusyStatus(Outlook_xp::OlBusyStatus* BusyStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusyStatus"), DISPID(33285));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)BusyStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlBusyStatus __fastcall
_AppointmentItemDispT<T>::get_BusyStatus(void)
{
  Outlook_xp::OlBusyStatus BusyStatus;
  this->get_BusyStatus((Outlook_xp::OlBusyStatus*)&BusyStatus);
  return BusyStatus;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_BusyStatus(Outlook_xp::OlBusyStatus BusyStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusyStatus"), DISPID(33285));
  TAutoArgs<1> _args;
  _args[1] = (int)BusyStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Duration(long* Duration/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(33299));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Duration /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_AppointmentItemDispT<T>::get_Duration(void)
{
  long Duration;
  this->get_Duration((long*)&Duration);
  return Duration;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Duration(long Duration/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(33299));
  TAutoArgs<1> _args;
  _args[1] = Duration /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_End(DATE* End/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("End"), DISPID(33294));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(End /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_AppointmentItemDispT<T>::get_End(void)
{
  DATE End;
  this->get_End((DATE*)&End);
  return End;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_End(DATE End/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("End"), DISPID(33294));
  TAutoArgs<1> _args;
  _args[1] = End /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_IsOnlineMeeting(VARIANT_BOOL* IsOnlineMeeting/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsOnlineMeeting"), DISPID(33344));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsOnlineMeeting /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_IsOnlineMeeting(void)
{
  VARIANT_BOOL IsOnlineMeeting;
  this->get_IsOnlineMeeting((VARIANT_BOOL*)&IsOnlineMeeting);
  return IsOnlineMeeting;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_IsOnlineMeeting(VARIANT_BOOL IsOnlineMeeting/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsOnlineMeeting"), DISPID(33344));
  TAutoArgs<1> _args;
  _args[1] = IsOnlineMeeting /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsRecurring"), DISPID(33315));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsRecurring /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_IsRecurring(void)
{
  VARIANT_BOOL IsRecurring;
  this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring);
  return IsRecurring;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Location(BSTR* Location/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Location"), DISPID(33288));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Location /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Location(void)
{
  BSTR Location;
  this->get_Location((BSTR*)&Location);
  return Location;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Location(BSTR Location/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Location"), DISPID(33288));
  TAutoArgs<1> _args;
  _args[1] = Location /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_MeetingStatus(Outlook_xp::OlMeetingStatus* MeetingStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MeetingStatus"), DISPID(33303));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MeetingStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlMeetingStatus __fastcall
_AppointmentItemDispT<T>::get_MeetingStatus(void)
{
  Outlook_xp::OlMeetingStatus MeetingStatus;
  this->get_MeetingStatus((Outlook_xp::OlMeetingStatus*)&MeetingStatus);
  return MeetingStatus;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_MeetingStatus(Outlook_xp::OlMeetingStatus MeetingStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MeetingStatus"), DISPID(33303));
  TAutoArgs<1> _args;
  _args[1] = (int)MeetingStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetMeetingAutoStart(VARIANT_BOOL* NetMeetingAutoStart/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingAutoStart"), DISPID(33348));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingAutoStart /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_NetMeetingAutoStart(void)
{
  VARIANT_BOOL NetMeetingAutoStart;
  this->get_NetMeetingAutoStart((VARIANT_BOOL*)&NetMeetingAutoStart);
  return NetMeetingAutoStart;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetMeetingAutoStart(VARIANT_BOOL NetMeetingAutoStart/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingAutoStart"), DISPID(33348));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingAutoStart /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetMeetingOrganizerAlias(BSTR* NetMeetingOrganizerAlias/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingOrganizerAlias"), DISPID(33347));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingOrganizerAlias /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_NetMeetingOrganizerAlias(void)
{
  BSTR NetMeetingOrganizerAlias;
  this->get_NetMeetingOrganizerAlias((BSTR*)&NetMeetingOrganizerAlias);
  return NetMeetingOrganizerAlias;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetMeetingOrganizerAlias(BSTR NetMeetingOrganizerAlias/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingOrganizerAlias"), DISPID(33347));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingOrganizerAlias /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingServer"), DISPID(33346));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingServer /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_NetMeetingServer(void)
{
  BSTR NetMeetingServer;
  this->get_NetMeetingServer((BSTR*)&NetMeetingServer);
  return NetMeetingServer;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingServer"), DISPID(33346));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingServer /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetMeetingType(Outlook_xp::OlNetMeetingType* NetMeetingType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingType"), DISPID(33345));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)NetMeetingType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlNetMeetingType __fastcall
_AppointmentItemDispT<T>::get_NetMeetingType(void)
{
  Outlook_xp::OlNetMeetingType NetMeetingType;
  this->get_NetMeetingType((Outlook_xp::OlNetMeetingType*)&NetMeetingType);
  return NetMeetingType;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetMeetingType(Outlook_xp::OlNetMeetingType NetMeetingType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingType"), DISPID(33345));
  TAutoArgs<1> _args;
  _args[1] = (int)NetMeetingType /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_OptionalAttendees(BSTR* OptionalAttendees/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OptionalAttendees"), DISPID(3587));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OptionalAttendees /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_OptionalAttendees(void)
{
  BSTR OptionalAttendees;
  this->get_OptionalAttendees((BSTR*)&OptionalAttendees);
  return OptionalAttendees;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_OptionalAttendees(BSTR OptionalAttendees/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OptionalAttendees"), DISPID(3587));
  TAutoArgs<1> _args;
  _args[1] = OptionalAttendees /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Organizer(BSTR* Organizer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Organizer"), DISPID(66));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Organizer /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Organizer(void)
{
  BSTR Organizer;
  this->get_Organizer((BSTR*)&Organizer);
  return Organizer;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Recipients"), DISPID(63508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)Recipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_AppointmentItemDispT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  this->get_Recipients(&Recipients);
  return Recipients;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_RecurrenceState(Outlook_xp::OlRecurrenceState* RecurrenceState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecurrenceState"), DISPID(62789));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)RecurrenceState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRecurrenceState __fastcall
_AppointmentItemDispT<T>::get_RecurrenceState(void)
{
  Outlook_xp::OlRecurrenceState RecurrenceState;
  this->get_RecurrenceState((Outlook_xp::OlRecurrenceState*)&RecurrenceState);
  return RecurrenceState;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReminderMinutesBeforeStart(long* ReminderMinutesBeforeStart/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderMinutesBeforeStart"), DISPID(34049));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderMinutesBeforeStart /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_AppointmentItemDispT<T>::get_ReminderMinutesBeforeStart(void)
{
  long ReminderMinutesBeforeStart;
  this->get_ReminderMinutesBeforeStart((long*)&ReminderMinutesBeforeStart);
  return ReminderMinutesBeforeStart;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReminderMinutesBeforeStart(long ReminderMinutesBeforeStart/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderMinutesBeforeStart"), DISPID(34049));
  TAutoArgs<1> _args;
  _args[1] = ReminderMinutesBeforeStart /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderOverrideDefault /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault);
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<1> _args;
  _args[1] = ReminderOverrideDefault /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderPlaySound /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound);
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<1> _args;
  _args[1] = ReminderPlaySound /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSet /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet);
  return ReminderSet;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<1> _args;
  _args[1] = ReminderSet /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSoundFile /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile;
  this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile);
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<1> _args;
  _args[1] = ReminderSoundFile /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ReplyTime(DATE* ReplyTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyTime"), DISPID(33312));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReplyTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_AppointmentItemDispT<T>::get_ReplyTime(void)
{
  DATE ReplyTime;
  this->get_ReplyTime((DATE*)&ReplyTime);
  return ReplyTime;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ReplyTime(DATE ReplyTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyTime"), DISPID(33312));
  TAutoArgs<1> _args;
  _args[1] = ReplyTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_RequiredAttendees(BSTR* RequiredAttendees/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RequiredAttendees"), DISPID(3588));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RequiredAttendees /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_RequiredAttendees(void)
{
  BSTR RequiredAttendees;
  this->get_RequiredAttendees((BSTR*)&RequiredAttendees);
  return RequiredAttendees;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_RequiredAttendees(BSTR RequiredAttendees/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RequiredAttendees"), DISPID(3588));
  TAutoArgs<1> _args;
  _args[1] = RequiredAttendees /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Resources(BSTR* Resources/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resources"), DISPID(3586));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Resources /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_Resources(void)
{
  BSTR Resources;
  this->get_Resources((BSTR*)&Resources);
  return Resources;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Resources(BSTR Resources/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resources"), DISPID(3586));
  TAutoArgs<1> _args;
  _args[1] = Resources /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ResponseRequested(VARIANT_BOOL* ResponseRequested/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseRequested"), DISPID(99));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ResponseRequested /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_ResponseRequested(void)
{
  VARIANT_BOOL ResponseRequested;
  this->get_ResponseRequested((VARIANT_BOOL*)&ResponseRequested);
  return ResponseRequested;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ResponseRequested(VARIANT_BOOL ResponseRequested/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseRequested"), DISPID(99));
  TAutoArgs<1> _args;
  _args[1] = ResponseRequested /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ResponseStatus(Outlook_xp::OlResponseStatus* ResponseStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseStatus"), DISPID(33304));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ResponseStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlResponseStatus __fastcall
_AppointmentItemDispT<T>::get_ResponseStatus(void)
{
  Outlook_xp::OlResponseStatus ResponseStatus;
  this->get_ResponseStatus((Outlook_xp::OlResponseStatus*)&ResponseStatus);
  return ResponseStatus;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Start(DATE* Start/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(33293));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Start /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_AppointmentItemDispT<T>::get_Start(void)
{
  DATE Start;
  this->get_Start((DATE*)&Start);
  return Start;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_Start(DATE Start/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(33293));
  TAutoArgs<1> _args;
  _args[1] = Start /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::ClearRecurrencePattern()
{
  _TDispID _dispid(*this, OLETEXT("ClearRecurrencePattern"), DISPID(61605));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::ForwardAsVcal(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ForwardAsVcal"), DISPID(62791));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_AppointmentItemDispT<T>::ForwardAsVcal(void)
{
  Outlook_xp::MailItem* Item;
  this->ForwardAsVcal((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetRecurrencePattern"), DISPID(61604));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::RecurrencePattern**)RecurrencPattern /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::RecurrencePattern* __fastcall
_AppointmentItemDispT<T>::GetRecurrencePattern(void)
{
  Outlook_xp::RecurrencePattern* RecurrencPattern;
  this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern);
  return RecurrencPattern;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                  VARIANT fNoUI/*[in,opt]*/, 
                                  VARIANT fAdditionalTextDialog/*[in,opt]*/, 
                                  Outlook_xp::MeetingItem** ResponseItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Respond"), DISPID(62722));
  TAutoArgs<3> _args;
  _args[1] = (int)Response /*[VT_USERDEFINED:0]*/;
  _args[2] = fNoUI /*[VT_VARIANT:0]*/;
  _args[3] = fAdditionalTextDialog /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MeetingItem**)ResponseItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MeetingItem* __fastcall
_AppointmentItemDispT<T>::Respond(Outlook_xp::OlMeetingResponse Response/*[in]*/, 
                                  VARIANT fNoUI/*[in,opt]*/, 
                                  VARIANT fAdditionalTextDialog/*[in,opt]*/)
{
  Outlook_xp::MeetingItem* ResponseItem;
  this->Respond(Response, fNoUI, fAdditionalTextDialog, (Outlook_xp::MeetingItem**)&ResponseItem);
  return ResponseItem;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::Send()
{
  _TDispID _dispid(*this, OLETEXT("Send"), DISPID(61557));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetMeetingDocPathName(BSTR* NetMeetingDocPathName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingDocPathName"), DISPID(33351));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingDocPathName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_NetMeetingDocPathName(void)
{
  BSTR NetMeetingDocPathName;
  this->get_NetMeetingDocPathName((BSTR*)&NetMeetingDocPathName);
  return NetMeetingDocPathName;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetMeetingDocPathName(BSTR NetMeetingDocPathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingDocPathName"), DISPID(33351));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingDocPathName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_NetShowURL(BSTR* NetShowURL/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetShowURL"), DISPID(33352));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetShowURL /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_NetShowURL(void)
{
  BSTR NetShowURL;
  this->get_NetShowURL((BSTR*)&NetShowURL);
  return NetShowURL;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_NetShowURL(BSTR NetShowURL/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetShowURL"), DISPID(33352));
  TAutoArgs<1> _args;
  _args[1] = NetShowURL /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_AppointmentItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ConferenceServerAllowExternal(VARIANT_BOOL* ConferenceServerAllowExternal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConferenceServerAllowExternal"), DISPID(33350));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConferenceServerAllowExternal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_ConferenceServerAllowExternal(void)
{
  VARIANT_BOOL ConferenceServerAllowExternal;
  this->get_ConferenceServerAllowExternal((VARIANT_BOOL*)&ConferenceServerAllowExternal);
  return ConferenceServerAllowExternal;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ConferenceServerAllowExternal(VARIANT_BOOL ConferenceServerAllowExternal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConferenceServerAllowExternal"), DISPID(33350));
  TAutoArgs<1> _args;
  _args[1] = ConferenceServerAllowExternal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ConferenceServerPassword(BSTR* ConferenceServerPassword/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConferenceServerPassword"), DISPID(33353));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConferenceServerPassword /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_AppointmentItemDispT<T>::get_ConferenceServerPassword(void)
{
  BSTR ConferenceServerPassword;
  this->get_ConferenceServerPassword((BSTR*)&ConferenceServerPassword);
  return ConferenceServerPassword;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_ConferenceServerPassword(BSTR ConferenceServerPassword/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConferenceServerPassword"), DISPID(33353));
  TAutoArgs<1> _args;
  _args[1] = ConferenceServerPassword /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_AppointmentItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_AppointmentItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InternetCodepage /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_AppointmentItemDispT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  this->get_InternetCodepage((long*)&InternetCodepage);
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<1> _args;
  _args[1] = InternetCodepage /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_AppointmentItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_AppointmentItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_AppointmentItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  Attachments
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AttachmentsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AttachmentsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AttachmentsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AttachmentsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AttachmentsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AttachmentsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Attachment** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachment**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Attachment* __fastcall
AttachmentsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Attachment* Item;
  this->Item(Index, (Outlook_xp::Attachment**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::Add(VARIANT Source/*[in]*/, VARIANT Type/*[in,opt]*/, 
                         VARIANT Position/*[in,opt]*/, VARIANT DisplayName/*[in,opt]*/, 
                         Outlook_xp::Attachment** Attachment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(101));
  TAutoArgs<4> _args;
  _args[1] = Source /*[VT_VARIANT:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  _args[3] = Position /*[VT_VARIANT:0]*/;
  _args[4] = DisplayName /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachment**)Attachment /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Attachment* __fastcall
AttachmentsDispT<T>::Add(VARIANT Source/*[in]*/, VARIANT Type/*[in,opt]*/, 
                         VARIANT Position/*[in,opt]*/, VARIANT DisplayName/*[in,opt]*/)
{
  Outlook_xp::Attachment* Attachment;
  this->Add(Source, Type, Position, DisplayName, (Outlook_xp::Attachment**)&Attachment);
  return Attachment;
}

template <class T> HRESULT __fastcall
AttachmentsDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  Attachment
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063007-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
AttachmentDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
AttachmentDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
AttachmentDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
AttachmentDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_DisplayName(BSTR* DisplayName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayName"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DisplayName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AttachmentDispT<T>::get_DisplayName(void)
{
  BSTR DisplayName;
  this->get_DisplayName((BSTR*)&DisplayName);
  return DisplayName;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::set_DisplayName(BSTR DisplayName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayName"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = DisplayName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_FileName(BSTR* FileName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(14084));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FileName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AttachmentDispT<T>::get_FileName(void)
{
  BSTR FileName;
  this->get_FileName((BSTR*)&FileName);
  return FileName;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Index(long* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(91));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Index /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AttachmentDispT<T>::get_Index(void)
{
  long Index;
  this->get_Index((long*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
AttachmentDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_PathName(BSTR* PathName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(14088));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PathName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
AttachmentDispT<T>::get_PathName(void)
{
  BSTR PathName;
  this->get_PathName((BSTR*)&PathName);
  return PathName;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Position(long* Position/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(114));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Position /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
AttachmentDispT<T>::get_Position(void)
{
  long Position;
  this->get_Position((long*)&Position);
  return Position;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::set_Position(long Position/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(114));
  TAutoArgs<1> _args;
  _args[1] = Position /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::get_Type(Outlook_xp::OlAttachmentType* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(14085));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlAttachmentType __fastcall
AttachmentDispT<T>::get_Type(void)
{
  Outlook_xp::OlAttachmentType Type;
  this->get_Type((Outlook_xp::OlAttachmentType*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(105));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
AttachmentDispT<T>::SaveAsFile(BSTR Path/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAsFile"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  FormDescription
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063046-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
FormDescriptionDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
FormDescriptionDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
FormDescriptionDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
FormDescriptionDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Category(BSTR* Category/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Category"), DISPID(13060));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Category /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Category(void)
{
  BSTR Category;
  this->get_Category((BSTR*)&Category);
  return Category;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Category(BSTR Category/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Category"), DISPID(13060));
  TAutoArgs<1> _args;
  _args[1] = Category /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_CategorySub(BSTR* CategorySub/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CategorySub"), DISPID(13061));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CategorySub /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_CategorySub(void)
{
  BSTR CategorySub;
  this->get_CategorySub((BSTR*)&CategorySub);
  return CategorySub;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_CategorySub(BSTR CategorySub/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CategorySub"), DISPID(13061));
  TAutoArgs<1> _args;
  _args[1] = CategorySub /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Comment(BSTR* Comment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(12292));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Comment /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Comment(void)
{
  BSTR Comment;
  this->get_Comment((BSTR*)&Comment);
  return Comment;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Comment(BSTR Comment/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(12292));
  TAutoArgs<1> _args;
  _args[1] = Comment /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_ContactName(BSTR* ContactName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactName"), DISPID(13059));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ContactName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_ContactName(void)
{
  BSTR ContactName;
  this->get_ContactName((BSTR*)&ContactName);
  return ContactName;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_ContactName(BSTR ContactName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactName"), DISPID(13059));
  TAutoArgs<1> _args;
  _args[1] = ContactName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_DisplayName(BSTR* DisplayName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayName"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DisplayName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_DisplayName(void)
{
  BSTR DisplayName;
  this->get_DisplayName((BSTR*)&DisplayName);
  return DisplayName;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_DisplayName(BSTR DisplayName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayName"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = DisplayName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Hidden(VARIANT_BOOL* Hidden/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(13063));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Hidden /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
FormDescriptionDispT<T>::get_Hidden(void)
{
  VARIANT_BOOL Hidden;
  this->get_Hidden((VARIANT_BOOL*)&Hidden);
  return Hidden;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Hidden(VARIANT_BOOL Hidden/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(13063));
  TAutoArgs<1> _args;
  _args[1] = Hidden /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Icon(BSTR* Icon/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Icon"), DISPID(4093));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Icon /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Icon(void)
{
  BSTR Icon;
  this->get_Icon((BSTR*)&Icon);
  return Icon;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Icon(BSTR Icon/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Icon"), DISPID(4093));
  TAutoArgs<1> _args;
  _args[1] = Icon /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Locked(VARIANT_BOOL* Locked/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Locked"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Locked /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
FormDescriptionDispT<T>::get_Locked(void)
{
  VARIANT_BOOL Locked;
  this->get_Locked((VARIANT_BOOL*)&Locked);
  return Locked;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Locked(VARIANT_BOOL Locked/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Locked"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = Locked /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_MiniIcon(BSTR* MiniIcon/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MiniIcon"), DISPID(4092));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MiniIcon /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_MiniIcon(void)
{
  BSTR MiniIcon;
  this->get_MiniIcon((BSTR*)&MiniIcon);
  return MiniIcon;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_MiniIcon(BSTR MiniIcon/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MiniIcon"), DISPID(4092));
  TAutoArgs<1> _args;
  _args[1] = MiniIcon /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(61469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(61469));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Number(BSTR* Number/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Number /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Number(void)
{
  BSTR Number;
  this->get_Number((BSTR*)&Number);
  return Number;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Number(BSTR Number/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Number /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_OneOff(VARIANT_BOOL* OneOff/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneOff"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OneOff /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
FormDescriptionDispT<T>::get_OneOff(void)
{
  VARIANT_BOOL OneOff;
  this->get_OneOff((VARIANT_BOOL*)&OneOff);
  return OneOff;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_OneOff(VARIANT_BOOL OneOff/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneOff"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = OneOff /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Password(BSTR* Password/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Password"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Password /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Password(void)
{
  BSTR Password;
  this->get_Password((BSTR*)&Password);
  return Password;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Password(BSTR Password/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Password"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_ScriptText(BSTR* ScriptText/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ScriptText"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ScriptText /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_ScriptText(void)
{
  BSTR ScriptText;
  this->get_ScriptText((BSTR*)&ScriptText);
  return ScriptText;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Template(BSTR* Template/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Template"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Template /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Template(void)
{
  BSTR Template;
  this->get_Template((BSTR*)&Template);
  return Template;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Template(BSTR Template/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Template"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = Template /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_UseWordMail(VARIANT_BOOL* UseWordMail/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseWordMail"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UseWordMail /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
FormDescriptionDispT<T>::get_UseWordMail(void)
{
  VARIANT_BOOL UseWordMail;
  this->get_UseWordMail((VARIANT_BOOL*)&UseWordMail);
  return UseWordMail;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_UseWordMail(VARIANT_BOOL UseWordMail/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseWordMail"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = UseWordMail /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::get_Version(BSTR* Version/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(13057));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Version /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
FormDescriptionDispT<T>::get_Version(void)
{
  BSTR Version;
  this->get_Version((BSTR*)&Version);
  return Version;
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::set_Version(BSTR Version/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(13057));
  TAutoArgs<1> _args;
  _args[1] = Version /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
FormDescriptionDispT<T>::PublishForm(Outlook_xp::OlFormRegistry Registry/*[in]*/, 
                                     VARIANT Folder/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("PublishForm"), DISPID(107));
  TAutoArgs<2> _args;
  _args[1] = (int)Registry /*[VT_USERDEFINED:0]*/;
  _args[2] = Folder /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  UserProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
UserPropertiesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
UserPropertiesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
UserPropertiesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
UserPropertiesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
UserPropertiesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::UserProperty** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperty**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::UserProperty* __fastcall
UserPropertiesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::UserProperty* Item;
  this->Item(Index, (Outlook_xp::UserProperty**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                            VARIANT AddToFolderFields/*[in,opt]*/, VARIANT DisplayFormat/*[in,opt]*/
                            , Outlook_xp::UserProperty** UserProperty/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(102));
  TAutoArgs<4> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = AddToFolderFields /*[VT_VARIANT:0]*/;
  _args[4] = DisplayFormat /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperty**)UserProperty /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::UserProperty* __fastcall
UserPropertiesDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                            VARIANT AddToFolderFields/*[in,opt]*/, VARIANT DisplayFormat/*[in,opt]*/)
{
  Outlook_xp::UserProperty* UserProperty;
  this->Add(Name, Type, AddToFolderFields, DisplayFormat, (Outlook_xp::UserProperty**)&UserProperty);
  return UserProperty;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::Find(BSTR Name/*[in]*/, VARIANT Custom/*[in,opt]*/, 
                             Outlook_xp::UserProperty** UserProperty/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(103));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Custom /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperty**)UserProperty /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::UserProperty* __fastcall
UserPropertiesDispT<T>::Find(BSTR Name/*[in]*/, VARIANT Custom/*[in,opt]*/)
{
  Outlook_xp::UserProperty* UserProperty;
  this->Find(Name, Custom, (Outlook_xp::UserProperty**)&UserProperty);
  return UserProperty;
}

template <class T> HRESULT __fastcall
UserPropertiesDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(82));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  UserProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063042-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
UserPropertyDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
UserPropertyDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
UserPropertyDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
UserPropertyDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Formula(BSTR* Formula/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Formula"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Formula /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
UserPropertyDispT<T>::get_Formula(void)
{
  BSTR Formula;
  this->get_Formula((BSTR*)&Formula);
  return Formula;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::set_Formula(BSTR Formula/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Formula"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Formula /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
UserPropertyDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlUserPropertyType __fastcall
UserPropertyDispT<T>::get_Type(void)
{
  Outlook_xp::OlUserPropertyType Type;
  this->get_Type((Outlook_xp::OlUserPropertyType*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationFormula"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ValidationFormula /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
UserPropertyDispT<T>::get_ValidationFormula(void)
{
  BSTR ValidationFormula;
  this->get_ValidationFormula((BSTR*)&ValidationFormula);
  return ValidationFormula;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::set_ValidationFormula(BSTR ValidationFormula/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationFormula"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = ValidationFormula /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_ValidationText(BSTR* ValidationText/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationText"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ValidationText /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
UserPropertyDispT<T>::get_ValidationText(void)
{
  BSTR ValidationText;
  this->get_ValidationText((BSTR*)&ValidationText);
  return ValidationText;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::set_ValidationText(BSTR ValidationText/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationText"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = ValidationText /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_Value(VARIANT* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
UserPropertyDispT<T>::get_Value(void)
{
  VARIANT Value;
  this->get_Value((VARIANT*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::set_Value(VARIANT Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(108));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
UserPropertyDispT<T>::get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsUserProperty"), DISPID(64008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsUserProperty /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
UserPropertyDispT<T>::get_IsUserProperty(void)
{
  VARIANT_BOOL IsUserProperty;
  this->get_IsUserProperty((VARIANT_BOOL*)&IsUserProperty);
  return IsUserProperty;
}

// *********************************************************************//
// DispIntf:  Recipients
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
RecipientsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
RecipientsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
RecipientsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
RecipientsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
RecipientsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecipientsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Recipient** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Recipient* __fastcall
RecipientsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Recipient* Item;
  this->Item(Index, (Outlook_xp::Recipient**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)Recipient /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Recipient* __fastcall
RecipientsDispT<T>::Add(BSTR Name/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  this->Add(Name, (Outlook_xp::Recipient**)&Recipient);
  return Recipient;
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecipientsDispT<T>::ResolveAll(VARIANT_BOOL* Success/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResolveAll"), DISPID(126));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Success /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
RecipientsDispT<T>::ResolveAll(void)
{
  VARIANT_BOOL Success;
  this->ResolveAll((VARIANT_BOOL*)&Success);
  return Success;
}

// *********************************************************************//
// SmartIntf: TCOM_MailItem
// Interface: _MailItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_MailItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_MailItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_MailItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_MailItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_MailItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_MailItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_MailItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_MailItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_MailItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_MailItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_MailItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_MailItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_MailItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_MailItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_MailItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_MailItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_AlternateRecipientAllowed(VARIANT_BOOL* AlternateRecipientAllowed/*[out,retval]*/)
{
  return (*this)->get_AlternateRecipientAllowed(AlternateRecipientAllowed);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_AlternateRecipientAllowed(void)
{
  VARIANT_BOOL AlternateRecipientAllowed;
  OLECHECK(this->get_AlternateRecipientAllowed((VARIANT_BOOL*)&AlternateRecipientAllowed));
  return AlternateRecipientAllowed;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_AlternateRecipientAllowed(VARIANT_BOOL AlternateRecipientAllowed/*[in]*/)
{
  return (*this)->set_AlternateRecipientAllowed(AlternateRecipientAllowed);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/)
{
  return (*this)->get_AutoForwarded(AutoForwarded);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_AutoForwarded(void)
{
  VARIANT_BOOL AutoForwarded;
  OLECHECK(this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded));
  return AutoForwarded;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/)
{
  return (*this)->set_AutoForwarded(AutoForwarded);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_BCC(BSTR* BCC/*[out,retval]*/)
{
  return (*this)->get_BCC(BCC);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_BCC(void)
{
  BSTR BCC = 0;
  OLECHECK(this->get_BCC((BSTR*)&BCC));
  return BCC;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_BCC(BSTR BCC/*[in]*/)
{
  return (*this)->set_BCC(BCC);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_CC(BSTR* CC/*[out,retval]*/)
{
  return (*this)->get_CC(CC);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_CC(void)
{
  BSTR CC = 0;
  OLECHECK(this->get_CC((BSTR*)&CC));
  return CC;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_CC(BSTR CC/*[in]*/)
{
  return (*this)->set_CC(CC);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/)
{
  return (*this)->get_DeferredDeliveryTime(DeferredDeliveryTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_DeferredDeliveryTime(void)
{
  DATE DeferredDeliveryTime;
  OLECHECK(this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime));
  return DeferredDeliveryTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/)
{
  return (*this)->set_DeferredDeliveryTime(DeferredDeliveryTime);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/)
{
  return (*this)->get_DeleteAfterSubmit(DeleteAfterSubmit);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_DeleteAfterSubmit(void)
{
  VARIANT_BOOL DeleteAfterSubmit;
  OLECHECK(this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit));
  return DeleteAfterSubmit;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/)
{
  return (*this)->set_DeleteAfterSubmit(DeleteAfterSubmit);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  return (*this)->get_ExpiryTime(ExpiryTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  return (*this)->set_ExpiryTime(ExpiryTime);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/)
{
  return (*this)->get_FlagDueBy(FlagDueBy);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_FlagDueBy(void)
{
  DATE FlagDueBy;
  OLECHECK(this->get_FlagDueBy((DATE*)&FlagDueBy));
  return FlagDueBy;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_FlagDueBy(DATE FlagDueBy/*[in]*/)
{
  return (*this)->set_FlagDueBy(FlagDueBy);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/)
{
  return (*this)->get_FlagRequest(FlagRequest);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_FlagRequest(void)
{
  BSTR FlagRequest = 0;
  OLECHECK(this->get_FlagRequest((BSTR*)&FlagRequest));
  return FlagRequest;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_FlagRequest(BSTR FlagRequest/*[in]*/)
{
  return (*this)->set_FlagRequest(FlagRequest);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/)
{
  return (*this)->get_FlagStatus(FlagStatus);
}

template <class T> Outlook_xp::OlFlagStatus __fastcall
TCOM_MailItemT<T>::get_FlagStatus(void)
{
  Outlook_xp::OlFlagStatus FlagStatus;
  OLECHECK(this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus));
  return FlagStatus;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/)
{
  return (*this)->set_FlagStatus(FlagStatus);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/)
{
  return (*this)->get_HTMLBody(HTMLBody);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_HTMLBody(void)
{
  BSTR HTMLBody = 0;
  OLECHECK(this->get_HTMLBody((BSTR*)&HTMLBody));
  return HTMLBody;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_HTMLBody(BSTR HTMLBody/*[in]*/)
{
  return (*this)->set_HTMLBody(HTMLBody);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/)
{
  return (*this)->get_OriginatorDeliveryReportRequested(OriginatorDeliveryReportRequested);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_OriginatorDeliveryReportRequested(void)
{
  VARIANT_BOOL OriginatorDeliveryReportRequested;
  OLECHECK(this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested));
  return OriginatorDeliveryReportRequested;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/)
{
  return (*this)->set_OriginatorDeliveryReportRequested(OriginatorDeliveryReportRequested);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReadReceiptRequested(VARIANT_BOOL* ReadReceiptRequested/*[out,retval]*/)
{
  return (*this)->get_ReadReceiptRequested(ReadReceiptRequested);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_ReadReceiptRequested(void)
{
  VARIANT_BOOL ReadReceiptRequested;
  OLECHECK(this->get_ReadReceiptRequested((VARIANT_BOOL*)&ReadReceiptRequested));
  return ReadReceiptRequested;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReadReceiptRequested(VARIANT_BOOL ReadReceiptRequested/*[in]*/)
{
  return (*this)->set_ReadReceiptRequested(ReadReceiptRequested);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReceivedByEntryID(BSTR* ReceivedByEntryID/*[out,retval]*/)
{
  return (*this)->get_ReceivedByEntryID(ReceivedByEntryID);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReceivedByEntryID(void)
{
  BSTR ReceivedByEntryID = 0;
  OLECHECK(this->get_ReceivedByEntryID((BSTR*)&ReceivedByEntryID));
  return ReceivedByEntryID;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReceivedByName(BSTR* ReceivedByName/*[out,retval]*/)
{
  return (*this)->get_ReceivedByName(ReceivedByName);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReceivedByName(void)
{
  BSTR ReceivedByName = 0;
  OLECHECK(this->get_ReceivedByName((BSTR*)&ReceivedByName));
  return ReceivedByName;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReceivedOnBehalfOfEntryID(BSTR* ReceivedOnBehalfOfEntryID/*[out,retval]*/)
{
  return (*this)->get_ReceivedOnBehalfOfEntryID(ReceivedOnBehalfOfEntryID);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReceivedOnBehalfOfEntryID(void)
{
  BSTR ReceivedOnBehalfOfEntryID = 0;
  OLECHECK(this->get_ReceivedOnBehalfOfEntryID((BSTR*)&ReceivedOnBehalfOfEntryID));
  return ReceivedOnBehalfOfEntryID;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReceivedOnBehalfOfName(BSTR* ReceivedOnBehalfOfName/*[out,retval]*/)
{
  return (*this)->get_ReceivedOnBehalfOfName(ReceivedOnBehalfOfName);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReceivedOnBehalfOfName(void)
{
  BSTR ReceivedOnBehalfOfName = 0;
  OLECHECK(this->get_ReceivedOnBehalfOfName((BSTR*)&ReceivedOnBehalfOfName));
  return ReceivedOnBehalfOfName;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  return (*this)->get_ReceivedTime(ReceivedTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_RecipientReassignmentProhibited(VARIANT_BOOL* RecipientReassignmentProhibited/*[out,retval]*/)
{
  return (*this)->get_RecipientReassignmentProhibited(RecipientReassignmentProhibited);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_RecipientReassignmentProhibited(void)
{
  VARIANT_BOOL RecipientReassignmentProhibited;
  OLECHECK(this->get_RecipientReassignmentProhibited((VARIANT_BOOL*)&RecipientReassignmentProhibited));
  return RecipientReassignmentProhibited;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_RecipientReassignmentProhibited(VARIANT_BOOL RecipientReassignmentProhibited/*[in]*/)
{
  return (*this)->set_RecipientReassignmentProhibited(RecipientReassignmentProhibited);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  return (*this)->get_Recipients(Recipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_MailItemT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  OLECHECK(this->get_Recipients((Outlook_xp::RecipientsPtr*)&Recipients));
  return Recipients;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  return (*this)->get_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  return (*this)->set_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  return (*this)->get_ReminderPlaySound(ReminderPlaySound);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  return (*this)->set_ReminderPlaySound(ReminderPlaySound);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  return (*this)->get_ReminderSet(ReminderSet);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
  return ReminderSet;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  return (*this)->set_ReminderSet(ReminderSet);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  return (*this)->get_ReminderSoundFile(ReminderSoundFile);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile = 0;
  OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  return (*this)->set_ReminderSoundFile(ReminderSoundFile);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  return (*this)->get_ReminderTime(ReminderTime);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
  return ReminderTime;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  return (*this)->set_ReminderTime(ReminderTime);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_RemoteStatus(Outlook_xp::OlRemoteStatus* RemoteStatus/*[out,retval]*/)
{
  return (*this)->get_RemoteStatus(RemoteStatus);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_MailItemT<T>::get_RemoteStatus(void)
{
  Outlook_xp::OlRemoteStatus RemoteStatus;
  OLECHECK(this->get_RemoteStatus((Outlook_xp::OlRemoteStatus*)&RemoteStatus));
  return RemoteStatus;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_RemoteStatus(Outlook_xp::OlRemoteStatus RemoteStatus/*[in]*/)
{
  return (*this)->set_RemoteStatus(RemoteStatus);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReplyRecipientNames(BSTR* ReplyRecipientNames/*[out,retval]*/)
{
  return (*this)->get_ReplyRecipientNames(ReplyRecipientNames);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_ReplyRecipientNames(void)
{
  BSTR ReplyRecipientNames = 0;
  OLECHECK(this->get_ReplyRecipientNames((BSTR*)&ReplyRecipientNames));
  return ReplyRecipientNames;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/)
{
  return (*this)->get_ReplyRecipients(ReplyRecipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_MailItemT<T>::get_ReplyRecipients(void)
{
  Outlook_xp::RecipientsPtr ReplyRecipients;
  OLECHECK(this->get_ReplyRecipients((Outlook_xp::RecipientsPtr*)&ReplyRecipients));
  return ReplyRecipients;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/)
{
  return (*this)->get_SaveSentMessageFolder(SaveSentMessageFolder);
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
TCOM_MailItemT<T>::get_SaveSentMessageFolder(void)
{
  Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
  OLECHECK(this->get_SaveSentMessageFolder((Outlook_xp::MAPIFolderPtr*)&SaveSentMessageFolder));
  return SaveSentMessageFolder;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::_set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/)
{
  return (*this)->_set_SaveSentMessageFolder(SaveSentMessageFolder);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  return (*this)->get_SenderName(SenderName);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_SenderName(void)
{
  BSTR SenderName = 0;
  OLECHECK(this->get_SenderName((BSTR*)&SenderName));
  return SenderName;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/)
{
  return (*this)->get_Sent(Sent);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_Sent(void)
{
  VARIANT_BOOL Sent;
  OLECHECK(this->get_Sent((VARIANT_BOOL*)&Sent));
  return Sent;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  return (*this)->get_SentOn(SentOn);
}

template <class T> DATE __fastcall
TCOM_MailItemT<T>::get_SentOn(void)
{
  DATE SentOn;
  OLECHECK(this->get_SentOn((DATE*)&SentOn));
  return SentOn;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_SentOnBehalfOfName(BSTR* SentOnBehalfOfName/*[out,retval]*/)
{
  return (*this)->get_SentOnBehalfOfName(SentOnBehalfOfName);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_SentOnBehalfOfName(void)
{
  BSTR SentOnBehalfOfName = 0;
  OLECHECK(this->get_SentOnBehalfOfName((BSTR*)&SentOnBehalfOfName));
  return SentOnBehalfOfName;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_SentOnBehalfOfName(BSTR SentOnBehalfOfName/*[in]*/)
{
  return (*this)->set_SentOnBehalfOfName(SentOnBehalfOfName);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/)
{
  return (*this)->get_Submitted(Submitted);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_Submitted(void)
{
  VARIANT_BOOL Submitted;
  OLECHECK(this->get_Submitted((VARIANT_BOOL*)&Submitted));
  return Submitted;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_To(BSTR* To/*[out,retval]*/)
{
  return (*this)->get_To(To);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_To(void)
{
  BSTR To = 0;
  OLECHECK(this->get_To((BSTR*)&To));
  return To;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_To(BSTR To/*[in]*/)
{
  return (*this)->set_To(To);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_VotingOptions(BSTR* VotingOptions/*[out,retval]*/)
{
  return (*this)->get_VotingOptions(VotingOptions);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_VotingOptions(void)
{
  BSTR VotingOptions = 0;
  OLECHECK(this->get_VotingOptions((BSTR*)&VotingOptions));
  return VotingOptions;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_VotingOptions(BSTR VotingOptions/*[in]*/)
{
  return (*this)->set_VotingOptions(VotingOptions);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_VotingResponse(BSTR* VotingResponse/*[out,retval]*/)
{
  return (*this)->get_VotingResponse(VotingResponse);
}

template <class T> BSTR __fastcall
TCOM_MailItemT<T>::get_VotingResponse(void)
{
  BSTR VotingResponse = 0;
  OLECHECK(this->get_VotingResponse((BSTR*)&VotingResponse));
  return VotingResponse;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_VotingResponse(BSTR VotingResponse/*[in]*/)
{
  return (*this)->set_VotingResponse(VotingResponse);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::ClearConversationIndex(void)
{
  return (*this)->ClearConversationIndex();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Forward(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_MailItemT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Reply(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_MailItemT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->ReplyAll(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_MailItemT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::Send(void)
{
  return (*this)->Send();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_MailItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_MailItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/)
{
  return (*this)->get_BodyFormat(BodyFormat);
}

template <class T> Outlook_xp::OlBodyFormat __fastcall
TCOM_MailItemT<T>::get_BodyFormat(void)
{
  Outlook_xp::OlBodyFormat BodyFormat;
  OLECHECK(this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat));
  return BodyFormat;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/)
{
  return (*this)->set_BodyFormat(BodyFormat);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_MailItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  return (*this)->get_InternetCodepage(InternetCodepage);
}

template <class T> long __fastcall
TCOM_MailItemT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  return (*this)->set_InternetCodepage(InternetCodepage);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_MailItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_MailItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MailItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _MailItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063034-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_MailItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_MailItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_MailItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MailItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_MailItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_MailItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_MailItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_MailItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_MailItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_MailItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_MailItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_MailItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_MailItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_MailItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MailItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MailItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_AlternateRecipientAllowed(VARIANT_BOOL* AlternateRecipientAllowed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AlternateRecipientAllowed"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AlternateRecipientAllowed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_AlternateRecipientAllowed(void)
{
  VARIANT_BOOL AlternateRecipientAllowed;
  this->get_AlternateRecipientAllowed((VARIANT_BOOL*)&AlternateRecipientAllowed);
  return AlternateRecipientAllowed;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_AlternateRecipientAllowed(VARIANT_BOOL AlternateRecipientAllowed/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AlternateRecipientAllowed"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = AlternateRecipientAllowed /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoForwarded"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AutoForwarded /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_AutoForwarded(void)
{
  VARIANT_BOOL AutoForwarded;
  this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded);
  return AutoForwarded;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoForwarded"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = AutoForwarded /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_BCC(BSTR* BCC/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BCC"), DISPID(3586));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BCC /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_BCC(void)
{
  BSTR BCC;
  this->get_BCC((BSTR*)&BCC);
  return BCC;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_BCC(BSTR BCC/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BCC"), DISPID(3586));
  TAutoArgs<1> _args;
  _args[1] = BCC /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_CC(BSTR* CC/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CC"), DISPID(3587));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CC /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_CC(void)
{
  BSTR CC;
  this->get_CC((BSTR*)&CC);
  return CC;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_CC(BSTR CC/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CC"), DISPID(3587));
  TAutoArgs<1> _args;
  _args[1] = CC /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeferredDeliveryTime"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DeferredDeliveryTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_DeferredDeliveryTime(void)
{
  DATE DeferredDeliveryTime;
  this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime);
  return DeferredDeliveryTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeferredDeliveryTime"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = DeferredDeliveryTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAfterSubmit"), DISPID(3585));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DeleteAfterSubmit /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_DeleteAfterSubmit(void)
{
  VARIANT_BOOL DeleteAfterSubmit;
  this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit);
  return DeleteAfterSubmit;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAfterSubmit"), DISPID(3585));
  TAutoArgs<1> _args;
  _args[1] = DeleteAfterSubmit /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ExpiryTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  this->get_ExpiryTime((DATE*)&ExpiryTime);
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = ExpiryTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagDueBy"), DISPID(48));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FlagDueBy /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_FlagDueBy(void)
{
  DATE FlagDueBy;
  this->get_FlagDueBy((DATE*)&FlagDueBy);
  return FlagDueBy;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_FlagDueBy(DATE FlagDueBy/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagDueBy"), DISPID(48));
  TAutoArgs<1> _args;
  _args[1] = FlagDueBy /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagRequest"), DISPID(34096));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FlagRequest /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_FlagRequest(void)
{
  BSTR FlagRequest;
  this->get_FlagRequest((BSTR*)&FlagRequest);
  return FlagRequest;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_FlagRequest(BSTR FlagRequest/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagRequest"), DISPID(34096));
  TAutoArgs<1> _args;
  _args[1] = FlagRequest /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagStatus"), DISPID(4240));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)FlagStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlFlagStatus __fastcall
_MailItemDispT<T>::get_FlagStatus(void)
{
  Outlook_xp::OlFlagStatus FlagStatus;
  this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus);
  return FlagStatus;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagStatus"), DISPID(4240));
  TAutoArgs<1> _args;
  _args[1] = (int)FlagStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLBody"), DISPID(62468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HTMLBody /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_HTMLBody(void)
{
  BSTR HTMLBody;
  this->get_HTMLBody((BSTR*)&HTMLBody);
  return HTMLBody;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_HTMLBody(BSTR HTMLBody/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLBody"), DISPID(62468));
  TAutoArgs<1> _args;
  _args[1] = HTMLBody /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginatorDeliveryReportRequested"), DISPID(35));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OriginatorDeliveryReportRequested /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_OriginatorDeliveryReportRequested(void)
{
  VARIANT_BOOL OriginatorDeliveryReportRequested;
  this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested);
  return OriginatorDeliveryReportRequested;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginatorDeliveryReportRequested"), DISPID(35));
  TAutoArgs<1> _args;
  _args[1] = OriginatorDeliveryReportRequested /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReadReceiptRequested(VARIANT_BOOL* ReadReceiptRequested/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadReceiptRequested"), DISPID(41));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReadReceiptRequested /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_ReadReceiptRequested(void)
{
  VARIANT_BOOL ReadReceiptRequested;
  this->get_ReadReceiptRequested((VARIANT_BOOL*)&ReadReceiptRequested);
  return ReadReceiptRequested;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReadReceiptRequested(VARIANT_BOOL ReadReceiptRequested/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadReceiptRequested"), DISPID(41));
  TAutoArgs<1> _args;
  _args[1] = ReadReceiptRequested /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReceivedByEntryID(BSTR* ReceivedByEntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedByEntryID"), DISPID(63));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedByEntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReceivedByEntryID(void)
{
  BSTR ReceivedByEntryID;
  this->get_ReceivedByEntryID((BSTR*)&ReceivedByEntryID);
  return ReceivedByEntryID;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReceivedByName(BSTR* ReceivedByName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedByName"), DISPID(64));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedByName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReceivedByName(void)
{
  BSTR ReceivedByName;
  this->get_ReceivedByName((BSTR*)&ReceivedByName);
  return ReceivedByName;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReceivedOnBehalfOfEntryID(BSTR* ReceivedOnBehalfOfEntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedOnBehalfOfEntryID"), DISPID(67));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedOnBehalfOfEntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReceivedOnBehalfOfEntryID(void)
{
  BSTR ReceivedOnBehalfOfEntryID;
  this->get_ReceivedOnBehalfOfEntryID((BSTR*)&ReceivedOnBehalfOfEntryID);
  return ReceivedOnBehalfOfEntryID;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReceivedOnBehalfOfName(BSTR* ReceivedOnBehalfOfName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedOnBehalfOfName"), DISPID(68));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedOnBehalfOfName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReceivedOnBehalfOfName(void)
{
  BSTR ReceivedOnBehalfOfName;
  this->get_ReceivedOnBehalfOfName((BSTR*)&ReceivedOnBehalfOfName);
  return ReceivedOnBehalfOfName;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedTime"), DISPID(3590));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  this->get_ReceivedTime((DATE*)&ReceivedTime);
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_RecipientReassignmentProhibited(VARIANT_BOOL* RecipientReassignmentProhibited/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecipientReassignmentProhibited"), DISPID(43));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RecipientReassignmentProhibited /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_RecipientReassignmentProhibited(void)
{
  VARIANT_BOOL RecipientReassignmentProhibited;
  this->get_RecipientReassignmentProhibited((VARIANT_BOOL*)&RecipientReassignmentProhibited);
  return RecipientReassignmentProhibited;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_RecipientReassignmentProhibited(VARIANT_BOOL RecipientReassignmentProhibited/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecipientReassignmentProhibited"), DISPID(43));
  TAutoArgs<1> _args;
  _args[1] = RecipientReassignmentProhibited /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Recipients"), DISPID(63508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)Recipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_MailItemDispT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  this->get_Recipients(&Recipients);
  return Recipients;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderOverrideDefault /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault);
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<1> _args;
  _args[1] = ReminderOverrideDefault /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderPlaySound /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound);
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<1> _args;
  _args[1] = ReminderPlaySound /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSet /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet);
  return ReminderSet;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<1> _args;
  _args[1] = ReminderSet /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSoundFile /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile;
  this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile);
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<1> _args;
  _args[1] = ReminderSoundFile /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  this->get_ReminderTime((DATE*)&ReminderTime);
  return ReminderTime;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<1> _args;
  _args[1] = ReminderTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_RemoteStatus(Outlook_xp::OlRemoteStatus* RemoteStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteStatus"), DISPID(34065));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)RemoteStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_MailItemDispT<T>::get_RemoteStatus(void)
{
  Outlook_xp::OlRemoteStatus RemoteStatus;
  this->get_RemoteStatus((Outlook_xp::OlRemoteStatus*)&RemoteStatus);
  return RemoteStatus;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_RemoteStatus(Outlook_xp::OlRemoteStatus RemoteStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteStatus"), DISPID(34065));
  TAutoArgs<1> _args;
  _args[1] = (int)RemoteStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReplyRecipientNames(BSTR* ReplyRecipientNames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyRecipientNames"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReplyRecipientNames /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_ReplyRecipientNames(void)
{
  BSTR ReplyRecipientNames;
  this->get_ReplyRecipientNames((BSTR*)&ReplyRecipientNames);
  return ReplyRecipientNames;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyRecipients"), DISPID(61459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)ReplyRecipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_MailItemDispT<T>::get_ReplyRecipients(void)
{
  Outlook_xp::RecipientsPtr ReplyRecipients;
  this->get_ReplyRecipients(&ReplyRecipients);
  return ReplyRecipients;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveSentMessageFolder"), DISPID(62465));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)SaveSentMessageFolder /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
_MailItemDispT<T>::get_SaveSentMessageFolder(void)
{
  Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
  this->get_SaveSentMessageFolder(&SaveSentMessageFolder);
  return SaveSentMessageFolder;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::_set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveSentMessageFolder"), DISPID(62465));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)SaveSentMessageFolder /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SenderName"), DISPID(3098));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SenderName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_SenderName(void)
{
  BSTR SenderName;
  this->get_SenderName((BSTR*)&SenderName);
  return SenderName;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sent"), DISPID(62466));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Sent /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_Sent(void)
{
  VARIANT_BOOL Sent;
  this->get_Sent((VARIANT_BOOL*)&Sent);
  return Sent;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SentOn"), DISPID(57));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SentOn /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MailItemDispT<T>::get_SentOn(void)
{
  DATE SentOn;
  this->get_SentOn((DATE*)&SentOn);
  return SentOn;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_SentOnBehalfOfName(BSTR* SentOnBehalfOfName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SentOnBehalfOfName"), DISPID(66));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SentOnBehalfOfName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_SentOnBehalfOfName(void)
{
  BSTR SentOnBehalfOfName;
  this->get_SentOnBehalfOfName((BSTR*)&SentOnBehalfOfName);
  return SentOnBehalfOfName;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_SentOnBehalfOfName(BSTR SentOnBehalfOfName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SentOnBehalfOfName"), DISPID(66));
  TAutoArgs<1> _args;
  _args[1] = SentOnBehalfOfName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Submitted"), DISPID(62467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Submitted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_Submitted(void)
{
  VARIANT_BOOL Submitted;
  this->get_Submitted((VARIANT_BOOL*)&Submitted);
  return Submitted;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_To(BSTR* To/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("To"), DISPID(3588));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(To /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_To(void)
{
  BSTR To;
  this->get_To((BSTR*)&To);
  return To;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_To(BSTR To/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("To"), DISPID(3588));
  TAutoArgs<1> _args;
  _args[1] = To /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_VotingOptions(BSTR* VotingOptions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VotingOptions"), DISPID(61467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(VotingOptions /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_VotingOptions(void)
{
  BSTR VotingOptions;
  this->get_VotingOptions((BSTR*)&VotingOptions);
  return VotingOptions;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_VotingOptions(BSTR VotingOptions/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VotingOptions"), DISPID(61467));
  TAutoArgs<1> _args;
  _args[1] = VotingOptions /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_VotingResponse(BSTR* VotingResponse/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VotingResponse"), DISPID(34084));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(VotingResponse /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MailItemDispT<T>::get_VotingResponse(void)
{
  BSTR VotingResponse;
  this->get_VotingResponse((BSTR*)&VotingResponse);
  return VotingResponse;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_VotingResponse(BSTR VotingResponse/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VotingResponse"), DISPID(34084));
  TAutoArgs<1> _args;
  _args[1] = VotingResponse /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::ClearConversationIndex()
{
  _TDispID _dispid(*this, OLETEXT("ClearConversationIndex"), DISPID(63522));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Forward"), DISPID(63507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_MailItemDispT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  this->Forward((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reply"), DISPID(63504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_MailItemDispT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  this->Reply((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyAll"), DISPID(63505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_MailItemDispT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  this->ReplyAll((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::Send()
{
  _TDispID _dispid(*this, OLETEXT("Send"), DISPID(61557));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_MailItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_MailItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BodyFormat"), DISPID(64073));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)BodyFormat /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlBodyFormat __fastcall
_MailItemDispT<T>::get_BodyFormat(void)
{
  Outlook_xp::OlBodyFormat BodyFormat;
  this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat);
  return BodyFormat;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BodyFormat"), DISPID(64073));
  TAutoArgs<1> _args;
  _args[1] = (int)BodyFormat /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_MailItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InternetCodepage /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_MailItemDispT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  this->get_InternetCodepage((long*)&InternetCodepage);
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<1> _args;
  _args[1] = InternetCodepage /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_MailItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MailItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MailItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  ItemEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006303A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ItemEventsDispT<T>::Open(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Open"), DISPID(61443));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                                 VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomAction"), DISPID(61446));
  TAutoArgs<3> _args;
  _args[1] = Action /*[VT_DISPATCH:0]*/;
  _args[2] = Response /*[VT_DISPATCH:0]*/;
  _args[3] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::CustomPropertyChange(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomPropertyChange"), DISPID(61448));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Forward"), DISPID(62568));
  TAutoArgs<2> _args;
  _args[1] = Forward /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Close(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61444));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::PropertyChange(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyChange"), DISPID(61449));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Read()
{
  _TDispID _dispid(*this, OLETEXT("Read"), DISPID(61441));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reply"), DISPID(62566));
  TAutoArgs<2> _args;
  _args[1] = Response /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyAll"), DISPID(62567));
  TAutoArgs<2> _args;
  _args[1] = Response /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Send(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Send"), DISPID(61445));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::Write(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Write"), DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BeforeCheckNames"), DISPID(61450));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachmentAdd"), DISPID(61451));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachmentRead"), DISPID(61452));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemEventsDispT<T>::BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                         VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BeforeAttachmentSave"), DISPID(61453));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  Links
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006308A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
LinksDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
LinksDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
LinksDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
LinksDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
LinksDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
LinksDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Link** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Link**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Link* __fastcall
LinksDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Link* Item;
  this->Item(Index, (Outlook_xp::Link**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::Add(LPDISPATCH Item/*[in]*/, Outlook_xp::Link** Link/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Link**)Link /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Link* __fastcall
LinksDispT<T>::Add(LPDISPATCH Item/*[in]*/)
{
  Outlook_xp::Link* Link;
  this->Add(Item, (Outlook_xp::Link**)&Link);
  return Link;
}

template <class T> HRESULT __fastcall
LinksDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  Link
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063089-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
LinkDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
LinkDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
LinkDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
LinkDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
LinkDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
LinkDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Type(Outlook_xp::OlObjectClass* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(8449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
LinkDispT<T>::get_Type(void)
{
  Outlook_xp::OlObjectClass Type;
  this->get_Type((Outlook_xp::OlObjectClass*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
LinkDispT<T>::get_Item(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(8450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
LinkDispT<T>::get_Item(void)
{
  LPDISPATCH Item;
  this->get_Item((LPDISPATCH*)&Item);
  return Item;
}

// *********************************************************************//
// DispIntf:  ItemProperties
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A8-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ItemPropertiesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ItemPropertiesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ItemPropertiesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ItemPropertiesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ItemPropertiesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::ItemProperty** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperty**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::ItemProperty* __fastcall
ItemPropertiesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::ItemProperty* Item;
  this->Item(Index, (Outlook_xp::ItemProperty**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::_NewEnum(LPUNKNOWN* ppvObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppvObject /*[VT_UNKNOWN:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ItemPropertiesDispT<T>::_NewEnum(void)
{
  LPUNKNOWN ppvObject;
  this->_NewEnum((LPUNKNOWN*)&ppvObject);
  return ppvObject;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                            VARIANT AddToFolderFields/*[in,opt]*/, VARIANT DisplayFormat/*[in,opt]*/
                            , Outlook_xp::ItemProperty** ItemProperty/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(102));
  TAutoArgs<4> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = AddToFolderFields /*[VT_VARIANT:0]*/;
  _args[4] = DisplayFormat /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperty**)ItemProperty /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::ItemProperty* __fastcall
ItemPropertiesDispT<T>::Add(BSTR Name/*[in]*/, Outlook_xp::OlUserPropertyType Type/*[in]*/, 
                            VARIANT AddToFolderFields/*[in,opt]*/, VARIANT DisplayFormat/*[in,opt]*/)
{
  Outlook_xp::ItemProperty* ItemProperty;
  this->Add(Name, Type, AddToFolderFields, DisplayFormat, (Outlook_xp::ItemProperty**)&ItemProperty);
  return ItemProperty;
}

template <class T> HRESULT __fastcall
ItemPropertiesDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(82));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ItemProperty
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {000630A7-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ItemPropertyDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ItemPropertyDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ItemPropertyDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ItemPropertyDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Formula(BSTR* Formula/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Formula"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Formula /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ItemPropertyDispT<T>::get_Formula(void)
{
  BSTR Formula;
  this->get_Formula((BSTR*)&Formula);
  return Formula;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::set_Formula(BSTR Formula/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Formula"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Formula /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ItemPropertyDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Type(Outlook_xp::OlUserPropertyType* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlUserPropertyType __fastcall
ItemPropertyDispT<T>::get_Type(void)
{
  Outlook_xp::OlUserPropertyType Type;
  this->get_Type((Outlook_xp::OlUserPropertyType*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_ValidationFormula(BSTR* ValidationFormula/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationFormula"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ValidationFormula /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ItemPropertyDispT<T>::get_ValidationFormula(void)
{
  BSTR ValidationFormula;
  this->get_ValidationFormula((BSTR*)&ValidationFormula);
  return ValidationFormula;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::set_ValidationFormula(BSTR ValidationFormula/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationFormula"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = ValidationFormula /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_ValidationText(BSTR* ValidationText/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationText"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ValidationText /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ItemPropertyDispT<T>::get_ValidationText(void)
{
  BSTR ValidationText;
  this->get_ValidationText((BSTR*)&ValidationText);
  return ValidationText;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::set_ValidationText(BSTR ValidationText/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValidationText"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = ValidationText /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_Value(VARIANT* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
ItemPropertyDispT<T>::get_Value(void)
{
  VARIANT Value;
  this->get_Value((VARIANT*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::set_Value(VARIANT Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(108));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ItemPropertyDispT<T>::get_IsUserProperty(VARIANT_BOOL* IsUserProperty/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsUserProperty"), DISPID(64008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsUserProperty /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
ItemPropertyDispT<T>::get_IsUserProperty(void)
{
  VARIANT_BOOL IsUserProperty;
  this->get_IsUserProperty((VARIANT_BOOL*)&IsUserProperty);
  return IsUserProperty;
}

// *********************************************************************//
// DispIntf:  ItemEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006302B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Open(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Open */ DISPID(61443));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::CustomAction(LPDISPATCH Action/*[in]*/, LPDISPATCH Response/*[in]*/, 
                                    VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* CustomAction */ DISPID(61446));
  TAutoArgs<3> _args;
  _args[1] = Action /*[VT_DISPATCH:0]*/;
  _args[2] = Response /*[VT_DISPATCH:0]*/;
  _args[3] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::CustomPropertyChange(BSTR Name/*[in]*/)
{
  _TDispID _dispid(/* CustomPropertyChange */ DISPID(61448));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Forward(LPDISPATCH Forward/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Forward */ DISPID(62568));
  TAutoArgs<2> _args;
  _args[1] = Forward /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Close(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Close */ DISPID(61444));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::PropertyChange(BSTR Name/*[in]*/)
{
  _TDispID _dispid(/* PropertyChange */ DISPID(61449));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Read()
{
  _TDispID _dispid(/* Read */ DISPID(61441));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Reply(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Reply */ DISPID(62566));
  TAutoArgs<2> _args;
  _args[1] = Response /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::ReplyAll(LPDISPATCH Response/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* ReplyAll */ DISPID(62567));
  TAutoArgs<2> _args;
  _args[1] = Response /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Send(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Send */ DISPID(61445));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::Write(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* Write */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::BeforeCheckNames(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeCheckNames */ DISPID(61450));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::AttachmentAdd(Outlook_xp::Attachment* Attachment/*[in]*/)
{
  _TDispID _dispid(/* AttachmentAdd */ DISPID(61451));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::AttachmentRead(Outlook_xp::Attachment* Attachment/*[in]*/)
{
  _TDispID _dispid(/* AttachmentRead */ DISPID(61452));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ItemEvents_10DispT<T>::BeforeAttachmentSave(Outlook_xp::Attachment* Attachment/*[in]*/, 
                                            VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeAttachmentSave */ DISPID(61453));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Attachment*)Attachment /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> void __fastcall
ItemEvents_10DispT<T>::BeforeDelete(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeDelete */ DISPID(64117));
  TAutoArgs<2> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  RecurrencePattern
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063044-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
RecurrencePatternDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
RecurrencePatternDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
RecurrencePatternDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
RecurrencePatternDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_DayOfMonth(long* DayOfMonth/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DayOfMonth"), DISPID(4096));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DayOfMonth /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_DayOfMonth(void)
{
  long DayOfMonth;
  this->get_DayOfMonth((long*)&DayOfMonth);
  return DayOfMonth;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_DayOfMonth(long DayOfMonth/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DayOfMonth"), DISPID(4096));
  TAutoArgs<1> _args;
  _args[1] = DayOfMonth /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_DayOfWeekMask(Outlook_xp::OlDaysOfWeek* DayOfWeekMask/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DayOfWeekMask"), DISPID(4097));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DayOfWeekMask /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDaysOfWeek __fastcall
RecurrencePatternDispT<T>::get_DayOfWeekMask(void)
{
  Outlook_xp::OlDaysOfWeek DayOfWeekMask;
  this->get_DayOfWeekMask((Outlook_xp::OlDaysOfWeek*)&DayOfWeekMask);
  return DayOfWeekMask;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_DayOfWeekMask(Outlook_xp::OlDaysOfWeek DayOfWeekMask/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DayOfWeekMask"), DISPID(4097));
  TAutoArgs<1> _args;
  _args[1] = (int)DayOfWeekMask /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Duration(long* Duration/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(4109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Duration /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_Duration(void)
{
  long Duration;
  this->get_Duration((long*)&Duration);
  return Duration;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_Duration(long Duration/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(4109));
  TAutoArgs<1> _args;
  _args[1] = Duration /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_EndTime(DATE* EndTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndTime"), DISPID(4108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EndTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
RecurrencePatternDispT<T>::get_EndTime(void)
{
  DATE EndTime;
  this->get_EndTime((DATE*)&EndTime);
  return EndTime;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_EndTime(DATE EndTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndTime"), DISPID(4108));
  TAutoArgs<1> _args;
  _args[1] = EndTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Exceptions(Outlook_xp::Exceptions** Exceptions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Exceptions"), DISPID(4110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Exceptions**)Exceptions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ExceptionsPtr __fastcall
RecurrencePatternDispT<T>::get_Exceptions(void)
{
  Outlook_xp::ExceptionsPtr Exceptions;
  this->get_Exceptions(&Exceptions);
  return Exceptions;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Instance(long* Instance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Instance"), DISPID(4099));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Instance /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_Instance(void)
{
  long Instance;
  this->get_Instance((long*)&Instance);
  return Instance;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_Instance(long Instance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Instance"), DISPID(4099));
  TAutoArgs<1> _args;
  _args[1] = Instance /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Interval(long* Interval/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(4100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Interval /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_Interval(void)
{
  long Interval;
  this->get_Interval((long*)&Interval);
  return Interval;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_Interval(long Interval/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(4100));
  TAutoArgs<1> _args;
  _args[1] = Interval /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_MonthOfYear(long* MonthOfYear/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MonthOfYear"), DISPID(4102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MonthOfYear /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_MonthOfYear(void)
{
  long MonthOfYear;
  this->get_MonthOfYear((long*)&MonthOfYear);
  return MonthOfYear;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_MonthOfYear(long MonthOfYear/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MonthOfYear"), DISPID(4102));
  TAutoArgs<1> _args;
  _args[1] = MonthOfYear /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_NoEndDate(VARIANT_BOOL* NoEndDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoEndDate"), DISPID(4107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoEndDate /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
RecurrencePatternDispT<T>::get_NoEndDate(void)
{
  VARIANT_BOOL NoEndDate;
  this->get_NoEndDate((VARIANT_BOOL*)&NoEndDate);
  return NoEndDate;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_NoEndDate(VARIANT_BOOL NoEndDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoEndDate"), DISPID(4107));
  TAutoArgs<1> _args;
  _args[1] = NoEndDate /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Occurrences(long* Occurrences/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Occurrences"), DISPID(4101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Occurrences /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
RecurrencePatternDispT<T>::get_Occurrences(void)
{
  long Occurrences;
  this->get_Occurrences((long*)&Occurrences);
  return Occurrences;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_Occurrences(long Occurrences/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Occurrences"), DISPID(4101));
  TAutoArgs<1> _args;
  _args[1] = Occurrences /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_PatternEndDate(DATE* PatternEndDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PatternEndDate"), DISPID(4098));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PatternEndDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
RecurrencePatternDispT<T>::get_PatternEndDate(void)
{
  DATE PatternEndDate;
  this->get_PatternEndDate((DATE*)&PatternEndDate);
  return PatternEndDate;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_PatternEndDate(DATE PatternEndDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PatternEndDate"), DISPID(4098));
  TAutoArgs<1> _args;
  _args[1] = PatternEndDate /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_PatternStartDate(DATE* PatternStartDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PatternStartDate"), DISPID(4104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PatternStartDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
RecurrencePatternDispT<T>::get_PatternStartDate(void)
{
  DATE PatternStartDate;
  this->get_PatternStartDate((DATE*)&PatternStartDate);
  return PatternStartDate;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_PatternStartDate(DATE PatternStartDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PatternStartDate"), DISPID(4104));
  TAutoArgs<1> _args;
  _args[1] = PatternStartDate /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_RecurrenceType(Outlook_xp::OlRecurrenceType* RecurrenceType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecurrenceType"), DISPID(4103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)RecurrenceType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRecurrenceType __fastcall
RecurrencePatternDispT<T>::get_RecurrenceType(void)
{
  Outlook_xp::OlRecurrenceType RecurrenceType;
  this->get_RecurrenceType((Outlook_xp::OlRecurrenceType*)&RecurrenceType);
  return RecurrenceType;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_RecurrenceType(Outlook_xp::OlRecurrenceType RecurrenceType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecurrenceType"), DISPID(4103));
  TAutoArgs<1> _args;
  _args[1] = (int)RecurrenceType /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_Regenerate(VARIANT_BOOL* Regenerate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Regenerate"), DISPID(4106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Regenerate /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
RecurrencePatternDispT<T>::get_Regenerate(void)
{
  VARIANT_BOOL Regenerate;
  this->get_Regenerate((VARIANT_BOOL*)&Regenerate);
  return Regenerate;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_Regenerate(VARIANT_BOOL Regenerate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Regenerate"), DISPID(4106));
  TAutoArgs<1> _args;
  _args[1] = Regenerate /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::get_StartTime(DATE* StartTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartTime"), DISPID(4105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StartTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
RecurrencePatternDispT<T>::get_StartTime(void)
{
  DATE StartTime;
  this->get_StartTime((DATE*)&StartTime);
  return StartTime;
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::set_StartTime(DATE StartTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartTime"), DISPID(4105));
  TAutoArgs<1> _args;
  _args[1] = StartTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
RecurrencePatternDispT<T>::GetOccurrence(DATE StartDate/*[in]*/, 
                                         Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetOccurrence"), DISPID(4111));
  TAutoArgs<1> _args;
  _args[1] = StartDate /*[VT_DATE:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AppointmentItem**)AppointmentItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AppointmentItem* __fastcall
RecurrencePatternDispT<T>::GetOccurrence(DATE StartDate/*[in]*/)
{
  Outlook_xp::AppointmentItem* AppointmentItem;
  this->GetOccurrence(StartDate, (Outlook_xp::AppointmentItem**)&AppointmentItem);
  return AppointmentItem;
}

// *********************************************************************//
// DispIntf:  Exceptions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ExceptionsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ExceptionsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ExceptionsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ExceptionsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ExceptionsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ExceptionsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ExceptionsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ExceptionsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ExceptionsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ExceptionsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ExceptionsDispT<T>::Item(VARIANT Index/*[in]*/, Outlook_xp::Exception** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Exception**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Exception* __fastcall
ExceptionsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::Exception* Item;
  this->Item(Index, (Outlook_xp::Exception**)&Item);
  return Item;
}

// *********************************************************************//
// DispIntf:  Exception
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006304D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
ExceptionDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
ExceptionDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
ExceptionDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
ExceptionDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_AppointmentItem(Outlook_xp::AppointmentItem** AppointmentItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AppointmentItem"), DISPID(8193));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AppointmentItem**)AppointmentItem /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AppointmentItemPtr __fastcall
ExceptionDispT<T>::get_AppointmentItem(void)
{
  Outlook_xp::AppointmentItemPtr AppointmentItem;
  this->get_AppointmentItem(&AppointmentItem);
  return AppointmentItem;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_Deleted(VARIANT_BOOL* Deleted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Deleted"), DISPID(8194));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Deleted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
ExceptionDispT<T>::get_Deleted(void)
{
  VARIANT_BOOL Deleted;
  this->get_Deleted((VARIANT_BOOL*)&Deleted);
  return Deleted;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_OriginalDate(DATE* OriginalDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginalDate"), DISPID(8192));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OriginalDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
ExceptionDispT<T>::get_OriginalDate(void)
{
  DATE OriginalDate;
  this->get_OriginalDate((DATE*)&OriginalDate);
  return OriginalDate;
}

template <class T> HRESULT __fastcall
ExceptionDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
ExceptionDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

// *********************************************************************//
// SmartIntf: TCOM_MeetingItem
// Interface: _MeetingItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_MeetingItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_MeetingItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_MeetingItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_MeetingItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_MeetingItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_MeetingItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_MeetingItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_MeetingItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_MeetingItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_MeetingItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_MeetingItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_MeetingItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_MeetingItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_MeetingItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_MeetingItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_MeetingItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/)
{
  return (*this)->get_AutoForwarded(AutoForwarded);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_AutoForwarded(void)
{
  VARIANT_BOOL AutoForwarded;
  OLECHECK(this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded));
  return AutoForwarded;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/)
{
  return (*this)->set_AutoForwarded(AutoForwarded);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/)
{
  return (*this)->get_DeferredDeliveryTime(DeferredDeliveryTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_DeferredDeliveryTime(void)
{
  DATE DeferredDeliveryTime;
  OLECHECK(this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime));
  return DeferredDeliveryTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/)
{
  return (*this)->set_DeferredDeliveryTime(DeferredDeliveryTime);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/)
{
  return (*this)->get_DeleteAfterSubmit(DeleteAfterSubmit);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_DeleteAfterSubmit(void)
{
  VARIANT_BOOL DeleteAfterSubmit;
  OLECHECK(this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit));
  return DeleteAfterSubmit;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/)
{
  return (*this)->set_DeleteAfterSubmit(DeleteAfterSubmit);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  return (*this)->get_ExpiryTime(ExpiryTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  return (*this)->set_ExpiryTime(ExpiryTime);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/)
{
  return (*this)->get_FlagDueBy(FlagDueBy);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_FlagDueBy(void)
{
  DATE FlagDueBy;
  OLECHECK(this->get_FlagDueBy((DATE*)&FlagDueBy));
  return FlagDueBy;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_FlagDueBy(DATE FlagDueBy/*[in]*/)
{
  return (*this)->set_FlagDueBy(FlagDueBy);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/)
{
  return (*this)->get_FlagRequest(FlagRequest);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_FlagRequest(void)
{
  BSTR FlagRequest = 0;
  OLECHECK(this->get_FlagRequest((BSTR*)&FlagRequest));
  return FlagRequest;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_FlagRequest(BSTR FlagRequest/*[in]*/)
{
  return (*this)->set_FlagRequest(FlagRequest);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/)
{
  return (*this)->get_FlagStatus(FlagStatus);
}

template <class T> Outlook_xp::OlFlagStatus __fastcall
TCOM_MeetingItemT<T>::get_FlagStatus(void)
{
  Outlook_xp::OlFlagStatus FlagStatus;
  OLECHECK(this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus));
  return FlagStatus;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/)
{
  return (*this)->set_FlagStatus(FlagStatus);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/)
{
  return (*this)->get_OriginatorDeliveryReportRequested(OriginatorDeliveryReportRequested);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_OriginatorDeliveryReportRequested(void)
{
  VARIANT_BOOL OriginatorDeliveryReportRequested;
  OLECHECK(this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested));
  return OriginatorDeliveryReportRequested;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/)
{
  return (*this)->set_OriginatorDeliveryReportRequested(OriginatorDeliveryReportRequested);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  return (*this)->get_ReceivedTime(ReceivedTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_ReceivedTime(DATE ReceivedTime/*[in]*/)
{
  return (*this)->set_ReceivedTime(ReceivedTime);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  return (*this)->get_Recipients(Recipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_MeetingItemT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  OLECHECK(this->get_Recipients((Outlook_xp::RecipientsPtr*)&Recipients));
  return Recipients;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  return (*this)->get_ReminderSet(ReminderSet);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
  return ReminderSet;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  return (*this)->set_ReminderSet(ReminderSet);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  return (*this)->get_ReminderTime(ReminderTime);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
  return ReminderTime;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  return (*this)->set_ReminderTime(ReminderTime);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/)
{
  return (*this)->get_ReplyRecipients(ReplyRecipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_MeetingItemT<T>::get_ReplyRecipients(void)
{
  Outlook_xp::RecipientsPtr ReplyRecipients;
  OLECHECK(this->get_ReplyRecipients((Outlook_xp::RecipientsPtr*)&ReplyRecipients));
  return ReplyRecipients;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/)
{
  return (*this)->get_SaveSentMessageFolder(SaveSentMessageFolder);
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
TCOM_MeetingItemT<T>::get_SaveSentMessageFolder(void)
{
  Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
  OLECHECK(this->get_SaveSentMessageFolder((Outlook_xp::MAPIFolderPtr*)&SaveSentMessageFolder));
  return SaveSentMessageFolder;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::_set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/)
{
  return (*this)->_set_SaveSentMessageFolder(SaveSentMessageFolder);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  return (*this)->get_SenderName(SenderName);
}

template <class T> BSTR __fastcall
TCOM_MeetingItemT<T>::get_SenderName(void)
{
  BSTR SenderName = 0;
  OLECHECK(this->get_SenderName((BSTR*)&SenderName));
  return SenderName;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/)
{
  return (*this)->get_Sent(Sent);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_Sent(void)
{
  VARIANT_BOOL Sent;
  OLECHECK(this->get_Sent((VARIANT_BOOL*)&Sent));
  return Sent;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  return (*this)->get_SentOn(SentOn);
}

template <class T> DATE __fastcall
TCOM_MeetingItemT<T>::get_SentOn(void)
{
  DATE SentOn;
  OLECHECK(this->get_SentOn((DATE*)&SentOn));
  return SentOn;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/)
{
  return (*this)->get_Submitted(Submitted);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_Submitted(void)
{
  VARIANT_BOOL Submitted;
  OLECHECK(this->get_Submitted((VARIANT_BOOL*)&Submitted));
  return Submitted;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Forward(Outlook_xp::MeetingItem** Item/*[out,retval]*/)
{
  return (*this)->Forward(Item);
}

template <class T> Outlook_xp::MeetingItem* __fastcall
TCOM_MeetingItemT<T>::Forward(void)
{
  Outlook_xp::MeetingItem* Item;
  OLECHECK(this->Forward((Outlook_xp::MeetingItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/, 
                                               Outlook_xp::AppointmentItem** Item/*[out,retval]*/)
{
  return (*this)->GetAssociatedAppointment(AddToCalendar, Item);
}

template <class T> Outlook_xp::AppointmentItem* __fastcall
TCOM_MeetingItemT<T>::GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/)
{
  Outlook_xp::AppointmentItem* Item;
  OLECHECK(this->GetAssociatedAppointment(AddToCalendar/*[in]*/, (Outlook_xp::AppointmentItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Reply(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_MeetingItemT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->ReplyAll(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_MeetingItemT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::Send(void)
{
  return (*this)->Send();
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_MeetingItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_MeetingItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_MeetingItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_MeetingItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_MeetingItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_MeetingItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _MeetingItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063062-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_MeetingItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_MeetingItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_MeetingItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MeetingItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_MeetingItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_MeetingItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_MeetingItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_MeetingItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_MeetingItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_MeetingItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_MeetingItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_MeetingItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_MeetingItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_MeetingItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MeetingItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_MeetingItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_AutoForwarded(VARIANT_BOOL* AutoForwarded/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoForwarded"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AutoForwarded /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_AutoForwarded(void)
{
  VARIANT_BOOL AutoForwarded;
  this->get_AutoForwarded((VARIANT_BOOL*)&AutoForwarded);
  return AutoForwarded;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_AutoForwarded(VARIANT_BOOL AutoForwarded/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoForwarded"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = AutoForwarded /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_DeferredDeliveryTime(DATE* DeferredDeliveryTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeferredDeliveryTime"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DeferredDeliveryTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_DeferredDeliveryTime(void)
{
  DATE DeferredDeliveryTime;
  this->get_DeferredDeliveryTime((DATE*)&DeferredDeliveryTime);
  return DeferredDeliveryTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_DeferredDeliveryTime(DATE DeferredDeliveryTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeferredDeliveryTime"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = DeferredDeliveryTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_DeleteAfterSubmit(VARIANT_BOOL* DeleteAfterSubmit/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAfterSubmit"), DISPID(3585));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DeleteAfterSubmit /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_DeleteAfterSubmit(void)
{
  VARIANT_BOOL DeleteAfterSubmit;
  this->get_DeleteAfterSubmit((VARIANT_BOOL*)&DeleteAfterSubmit);
  return DeleteAfterSubmit;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_DeleteAfterSubmit(VARIANT_BOOL DeleteAfterSubmit/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAfterSubmit"), DISPID(3585));
  TAutoArgs<1> _args;
  _args[1] = DeleteAfterSubmit /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ExpiryTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  this->get_ExpiryTime((DATE*)&ExpiryTime);
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = ExpiryTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_FlagDueBy(DATE* FlagDueBy/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagDueBy"), DISPID(48));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FlagDueBy /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_FlagDueBy(void)
{
  DATE FlagDueBy;
  this->get_FlagDueBy((DATE*)&FlagDueBy);
  return FlagDueBy;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_FlagDueBy(DATE FlagDueBy/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagDueBy"), DISPID(48));
  TAutoArgs<1> _args;
  _args[1] = FlagDueBy /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_FlagRequest(BSTR* FlagRequest/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagRequest"), DISPID(34096));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FlagRequest /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_FlagRequest(void)
{
  BSTR FlagRequest;
  this->get_FlagRequest((BSTR*)&FlagRequest);
  return FlagRequest;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_FlagRequest(BSTR FlagRequest/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagRequest"), DISPID(34096));
  TAutoArgs<1> _args;
  _args[1] = FlagRequest /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_FlagStatus(Outlook_xp::OlFlagStatus* FlagStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagStatus"), DISPID(4240));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)FlagStatus /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlFlagStatus __fastcall
_MeetingItemDispT<T>::get_FlagStatus(void)
{
  Outlook_xp::OlFlagStatus FlagStatus;
  this->get_FlagStatus((Outlook_xp::OlFlagStatus*)&FlagStatus);
  return FlagStatus;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_FlagStatus(Outlook_xp::OlFlagStatus FlagStatus/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagStatus"), DISPID(4240));
  TAutoArgs<1> _args;
  _args[1] = (int)FlagStatus /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_OriginatorDeliveryReportRequested(VARIANT_BOOL* OriginatorDeliveryReportRequested/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginatorDeliveryReportRequested"), DISPID(35));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OriginatorDeliveryReportRequested /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_OriginatorDeliveryReportRequested(void)
{
  VARIANT_BOOL OriginatorDeliveryReportRequested;
  this->get_OriginatorDeliveryReportRequested((VARIANT_BOOL*)&OriginatorDeliveryReportRequested);
  return OriginatorDeliveryReportRequested;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_OriginatorDeliveryReportRequested(VARIANT_BOOL OriginatorDeliveryReportRequested/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OriginatorDeliveryReportRequested"), DISPID(35));
  TAutoArgs<1> _args;
  _args[1] = OriginatorDeliveryReportRequested /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedTime"), DISPID(3590));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  this->get_ReceivedTime((DATE*)&ReceivedTime);
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_ReceivedTime(DATE ReceivedTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedTime"), DISPID(3590));
  TAutoArgs<1> _args;
  _args[1] = ReceivedTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Recipients"), DISPID(63508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)Recipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_MeetingItemDispT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  this->get_Recipients(&Recipients);
  return Recipients;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSet /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet);
  return ReminderSet;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<1> _args;
  _args[1] = ReminderSet /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  this->get_ReminderTime((DATE*)&ReminderTime);
  return ReminderTime;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<1> _args;
  _args[1] = ReminderTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ReplyRecipients(Outlook_xp::Recipients** ReplyRecipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyRecipients"), DISPID(61459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)ReplyRecipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_MeetingItemDispT<T>::get_ReplyRecipients(void)
{
  Outlook_xp::RecipientsPtr ReplyRecipients;
  this->get_ReplyRecipients(&ReplyRecipients);
  return ReplyRecipients;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_SaveSentMessageFolder(Outlook_xp::MAPIFolder** SaveSentMessageFolder/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveSentMessageFolder"), DISPID(62465));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MAPIFolder**)SaveSentMessageFolder /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::MAPIFolderPtr __fastcall
_MeetingItemDispT<T>::get_SaveSentMessageFolder(void)
{
  Outlook_xp::MAPIFolderPtr SaveSentMessageFolder;
  this->get_SaveSentMessageFolder(&SaveSentMessageFolder);
  return SaveSentMessageFolder;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::_set_SaveSentMessageFolder(Outlook_xp::MAPIFolder* SaveSentMessageFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveSentMessageFolder"), DISPID(62465));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)SaveSentMessageFolder /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SenderName"), DISPID(3098));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SenderName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_MeetingItemDispT<T>::get_SenderName(void)
{
  BSTR SenderName;
  this->get_SenderName((BSTR*)&SenderName);
  return SenderName;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Sent(VARIANT_BOOL* Sent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sent"), DISPID(62466));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Sent /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_Sent(void)
{
  VARIANT_BOOL Sent;
  this->get_Sent((VARIANT_BOOL*)&Sent);
  return Sent;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SentOn"), DISPID(57));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SentOn /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_MeetingItemDispT<T>::get_SentOn(void)
{
  DATE SentOn;
  this->get_SentOn((DATE*)&SentOn);
  return SentOn;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Submitted(VARIANT_BOOL* Submitted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Submitted"), DISPID(62467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Submitted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_Submitted(void)
{
  VARIANT_BOOL Submitted;
  this->get_Submitted((VARIANT_BOOL*)&Submitted);
  return Submitted;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Forward(Outlook_xp::MeetingItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Forward"), DISPID(63507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MeetingItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MeetingItem* __fastcall
_MeetingItemDispT<T>::Forward(void)
{
  Outlook_xp::MeetingItem* Item;
  this->Forward((Outlook_xp::MeetingItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/, 
                                               Outlook_xp::AppointmentItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAssociatedAppointment"), DISPID(63328));
  TAutoArgs<1> _args;
  _args[1] = AddToCalendar /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::AppointmentItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::AppointmentItem* __fastcall
_MeetingItemDispT<T>::GetAssociatedAppointment(VARIANT_BOOL AddToCalendar/*[in]*/)
{
  Outlook_xp::AppointmentItem* Item;
  this->GetAssociatedAppointment(AddToCalendar, (Outlook_xp::AppointmentItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reply"), DISPID(63504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_MeetingItemDispT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  this->Reply((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyAll"), DISPID(63505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_MeetingItemDispT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  this->ReplyAll((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::Send()
{
  _TDispID _dispid(*this, OLETEXT("Send"), DISPID(61557));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_MeetingItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_MeetingItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_MeetingItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_MeetingItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_MeetingItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_MeetingItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_ContactItem
// Interface: _ContactItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ContactItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ContactItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ContactItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ContactItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_ContactItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_ContactItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_ContactItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_ContactItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_ContactItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_ContactItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_ContactItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_ContactItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ContactItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_ContactItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ContactItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_ContactItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_ContactItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ContactItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_ContactItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ContactItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ContactItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Account(BSTR* Account/*[out,retval]*/)
{
  return (*this)->get_Account(Account);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Account(void)
{
  BSTR Account = 0;
  OLECHECK(this->get_Account((BSTR*)&Account));
  return Account;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Account(BSTR Account/*[in]*/)
{
  return (*this)->set_Account(Account);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Anniversary(DATE* Anniversary/*[out,retval]*/)
{
  return (*this)->get_Anniversary(Anniversary);
}

template <class T> DATE __fastcall
TCOM_ContactItemT<T>::get_Anniversary(void)
{
  DATE Anniversary;
  OLECHECK(this->get_Anniversary((DATE*)&Anniversary));
  return Anniversary;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Anniversary(DATE Anniversary/*[in]*/)
{
  return (*this)->set_Anniversary(Anniversary);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_AssistantName(BSTR* AssistantName/*[out,retval]*/)
{
  return (*this)->get_AssistantName(AssistantName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_AssistantName(void)
{
  BSTR AssistantName = 0;
  OLECHECK(this->get_AssistantName((BSTR*)&AssistantName));
  return AssistantName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_AssistantName(BSTR AssistantName/*[in]*/)
{
  return (*this)->set_AssistantName(AssistantName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_AssistantTelephoneNumber(BSTR* AssistantTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_AssistantTelephoneNumber(AssistantTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_AssistantTelephoneNumber(void)
{
  BSTR AssistantTelephoneNumber = 0;
  OLECHECK(this->get_AssistantTelephoneNumber((BSTR*)&AssistantTelephoneNumber));
  return AssistantTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_AssistantTelephoneNumber(BSTR AssistantTelephoneNumber/*[in]*/)
{
  return (*this)->set_AssistantTelephoneNumber(AssistantTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Birthday(DATE* Birthday/*[out,retval]*/)
{
  return (*this)->get_Birthday(Birthday);
}

template <class T> DATE __fastcall
TCOM_ContactItemT<T>::get_Birthday(void)
{
  DATE Birthday;
  OLECHECK(this->get_Birthday((DATE*)&Birthday));
  return Birthday;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Birthday(DATE Birthday/*[in]*/)
{
  return (*this)->set_Birthday(Birthday);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Business2TelephoneNumber(BSTR* Business2TelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_Business2TelephoneNumber(Business2TelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Business2TelephoneNumber(void)
{
  BSTR Business2TelephoneNumber = 0;
  OLECHECK(this->get_Business2TelephoneNumber((BSTR*)&Business2TelephoneNumber));
  return Business2TelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Business2TelephoneNumber(BSTR Business2TelephoneNumber/*[in]*/)
{
  return (*this)->set_Business2TelephoneNumber(Business2TelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddress(BSTR* BusinessAddress/*[out,retval]*/)
{
  return (*this)->get_BusinessAddress(BusinessAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddress(void)
{
  BSTR BusinessAddress = 0;
  OLECHECK(this->get_BusinessAddress((BSTR*)&BusinessAddress));
  return BusinessAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddress(BSTR BusinessAddress/*[in]*/)
{
  return (*this)->set_BusinessAddress(BusinessAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressCity(BSTR* BusinessAddressCity/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressCity(BusinessAddressCity);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressCity(void)
{
  BSTR BusinessAddressCity = 0;
  OLECHECK(this->get_BusinessAddressCity((BSTR*)&BusinessAddressCity));
  return BusinessAddressCity;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressCity(BSTR BusinessAddressCity/*[in]*/)
{
  return (*this)->set_BusinessAddressCity(BusinessAddressCity);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressCountry(BSTR* BusinessAddressCountry/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressCountry(BusinessAddressCountry);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressCountry(void)
{
  BSTR BusinessAddressCountry = 0;
  OLECHECK(this->get_BusinessAddressCountry((BSTR*)&BusinessAddressCountry));
  return BusinessAddressCountry;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressCountry(BSTR BusinessAddressCountry/*[in]*/)
{
  return (*this)->set_BusinessAddressCountry(BusinessAddressCountry);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressPostalCode(BSTR* BusinessAddressPostalCode/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressPostalCode(BusinessAddressPostalCode);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressPostalCode(void)
{
  BSTR BusinessAddressPostalCode = 0;
  OLECHECK(this->get_BusinessAddressPostalCode((BSTR*)&BusinessAddressPostalCode));
  return BusinessAddressPostalCode;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressPostalCode(BSTR BusinessAddressPostalCode/*[in]*/)
{
  return (*this)->set_BusinessAddressPostalCode(BusinessAddressPostalCode);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressPostOfficeBox(BSTR* BusinessAddressPostOfficeBox/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressPostOfficeBox(BusinessAddressPostOfficeBox);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressPostOfficeBox(void)
{
  BSTR BusinessAddressPostOfficeBox = 0;
  OLECHECK(this->get_BusinessAddressPostOfficeBox((BSTR*)&BusinessAddressPostOfficeBox));
  return BusinessAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressPostOfficeBox(BSTR BusinessAddressPostOfficeBox/*[in]*/)
{
  return (*this)->set_BusinessAddressPostOfficeBox(BusinessAddressPostOfficeBox);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressState(BSTR* BusinessAddressState/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressState(BusinessAddressState);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressState(void)
{
  BSTR BusinessAddressState = 0;
  OLECHECK(this->get_BusinessAddressState((BSTR*)&BusinessAddressState));
  return BusinessAddressState;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressState(BSTR BusinessAddressState/*[in]*/)
{
  return (*this)->set_BusinessAddressState(BusinessAddressState);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressStreet(BSTR* BusinessAddressStreet/*[out,retval]*/)
{
  return (*this)->get_BusinessAddressStreet(BusinessAddressStreet);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessAddressStreet(void)
{
  BSTR BusinessAddressStreet = 0;
  OLECHECK(this->get_BusinessAddressStreet((BSTR*)&BusinessAddressStreet));
  return BusinessAddressStreet;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessAddressStreet(BSTR BusinessAddressStreet/*[in]*/)
{
  return (*this)->set_BusinessAddressStreet(BusinessAddressStreet);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessFaxNumber(BSTR* BusinessFaxNumber/*[out,retval]*/)
{
  return (*this)->get_BusinessFaxNumber(BusinessFaxNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessFaxNumber(void)
{
  BSTR BusinessFaxNumber = 0;
  OLECHECK(this->get_BusinessFaxNumber((BSTR*)&BusinessFaxNumber));
  return BusinessFaxNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessFaxNumber(BSTR BusinessFaxNumber/*[in]*/)
{
  return (*this)->set_BusinessFaxNumber(BusinessFaxNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessHomePage(BSTR* BusinessHomePage/*[out,retval]*/)
{
  return (*this)->get_BusinessHomePage(BusinessHomePage);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessHomePage(void)
{
  BSTR BusinessHomePage = 0;
  OLECHECK(this->get_BusinessHomePage((BSTR*)&BusinessHomePage));
  return BusinessHomePage;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessHomePage(BSTR BusinessHomePage/*[in]*/)
{
  return (*this)->set_BusinessHomePage(BusinessHomePage);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_BusinessTelephoneNumber(BSTR* BusinessTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_BusinessTelephoneNumber(BusinessTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_BusinessTelephoneNumber(void)
{
  BSTR BusinessTelephoneNumber = 0;
  OLECHECK(this->get_BusinessTelephoneNumber((BSTR*)&BusinessTelephoneNumber));
  return BusinessTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_BusinessTelephoneNumber(BSTR BusinessTelephoneNumber/*[in]*/)
{
  return (*this)->set_BusinessTelephoneNumber(BusinessTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CallbackTelephoneNumber(BSTR* CallbackTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_CallbackTelephoneNumber(CallbackTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CallbackTelephoneNumber(void)
{
  BSTR CallbackTelephoneNumber = 0;
  OLECHECK(this->get_CallbackTelephoneNumber((BSTR*)&CallbackTelephoneNumber));
  return CallbackTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_CallbackTelephoneNumber(BSTR CallbackTelephoneNumber/*[in]*/)
{
  return (*this)->set_CallbackTelephoneNumber(CallbackTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CarTelephoneNumber(BSTR* CarTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_CarTelephoneNumber(CarTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CarTelephoneNumber(void)
{
  BSTR CarTelephoneNumber = 0;
  OLECHECK(this->get_CarTelephoneNumber((BSTR*)&CarTelephoneNumber));
  return CarTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_CarTelephoneNumber(BSTR CarTelephoneNumber/*[in]*/)
{
  return (*this)->set_CarTelephoneNumber(CarTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Children(BSTR* Children/*[out,retval]*/)
{
  return (*this)->get_Children(Children);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Children(void)
{
  BSTR Children = 0;
  OLECHECK(this->get_Children((BSTR*)&Children));
  return Children;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Children(BSTR Children/*[in]*/)
{
  return (*this)->set_Children(Children);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CompanyAndFullName(BSTR* CompanyAndFullName/*[out,retval]*/)
{
  return (*this)->get_CompanyAndFullName(CompanyAndFullName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CompanyAndFullName(void)
{
  BSTR CompanyAndFullName = 0;
  OLECHECK(this->get_CompanyAndFullName((BSTR*)&CompanyAndFullName));
  return CompanyAndFullName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CompanyLastFirstNoSpace(BSTR* CompanyLastFirstNoSpace/*[out,retval]*/)
{
  return (*this)->get_CompanyLastFirstNoSpace(CompanyLastFirstNoSpace);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CompanyLastFirstNoSpace(void)
{
  BSTR CompanyLastFirstNoSpace = 0;
  OLECHECK(this->get_CompanyLastFirstNoSpace((BSTR*)&CompanyLastFirstNoSpace));
  return CompanyLastFirstNoSpace;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CompanyLastFirstSpaceOnly(BSTR* CompanyLastFirstSpaceOnly/*[out,retval]*/)
{
  return (*this)->get_CompanyLastFirstSpaceOnly(CompanyLastFirstSpaceOnly);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CompanyLastFirstSpaceOnly(void)
{
  BSTR CompanyLastFirstSpaceOnly = 0;
  OLECHECK(this->get_CompanyLastFirstSpaceOnly((BSTR*)&CompanyLastFirstSpaceOnly));
  return CompanyLastFirstSpaceOnly;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CompanyMainTelephoneNumber(BSTR* CompanyMainTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_CompanyMainTelephoneNumber(CompanyMainTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CompanyMainTelephoneNumber(void)
{
  BSTR CompanyMainTelephoneNumber = 0;
  OLECHECK(this->get_CompanyMainTelephoneNumber((BSTR*)&CompanyMainTelephoneNumber));
  return CompanyMainTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_CompanyMainTelephoneNumber(BSTR CompanyMainTelephoneNumber/*[in]*/)
{
  return (*this)->set_CompanyMainTelephoneNumber(CompanyMainTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CompanyName(BSTR* CompanyName/*[out,retval]*/)
{
  return (*this)->get_CompanyName(CompanyName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CompanyName(void)
{
  BSTR CompanyName = 0;
  OLECHECK(this->get_CompanyName((BSTR*)&CompanyName));
  return CompanyName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_CompanyName(BSTR CompanyName/*[in]*/)
{
  return (*this)->set_CompanyName(CompanyName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ComputerNetworkName(BSTR* ComputerNetworkName/*[out,retval]*/)
{
  return (*this)->get_ComputerNetworkName(ComputerNetworkName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ComputerNetworkName(void)
{
  BSTR ComputerNetworkName = 0;
  OLECHECK(this->get_ComputerNetworkName((BSTR*)&ComputerNetworkName));
  return ComputerNetworkName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_ComputerNetworkName(BSTR ComputerNetworkName/*[in]*/)
{
  return (*this)->set_ComputerNetworkName(ComputerNetworkName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_CustomerID(BSTR* CustomerID/*[out,retval]*/)
{
  return (*this)->get_CustomerID(CustomerID);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_CustomerID(void)
{
  BSTR CustomerID = 0;
  OLECHECK(this->get_CustomerID((BSTR*)&CustomerID));
  return CustomerID;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_CustomerID(BSTR CustomerID/*[in]*/)
{
  return (*this)->set_CustomerID(CustomerID);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Department(BSTR* Department/*[out,retval]*/)
{
  return (*this)->get_Department(Department);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Department(void)
{
  BSTR Department = 0;
  OLECHECK(this->get_Department((BSTR*)&Department));
  return Department;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Department(BSTR Department/*[in]*/)
{
  return (*this)->set_Department(Department);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email1Address(BSTR* Email1Address/*[out,retval]*/)
{
  return (*this)->get_Email1Address(Email1Address);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email1Address(void)
{
  BSTR Email1Address = 0;
  OLECHECK(this->get_Email1Address((BSTR*)&Email1Address));
  return Email1Address;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email1Address(BSTR Email1Address/*[in]*/)
{
  return (*this)->set_Email1Address(Email1Address);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email1AddressType(BSTR* Email1AddressType/*[out,retval]*/)
{
  return (*this)->get_Email1AddressType(Email1AddressType);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email1AddressType(void)
{
  BSTR Email1AddressType = 0;
  OLECHECK(this->get_Email1AddressType((BSTR*)&Email1AddressType));
  return Email1AddressType;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email1AddressType(BSTR Email1AddressType/*[in]*/)
{
  return (*this)->set_Email1AddressType(Email1AddressType);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email1DisplayName(BSTR* Email1DisplayName/*[out,retval]*/)
{
  return (*this)->get_Email1DisplayName(Email1DisplayName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email1DisplayName(void)
{
  BSTR Email1DisplayName = 0;
  OLECHECK(this->get_Email1DisplayName((BSTR*)&Email1DisplayName));
  return Email1DisplayName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email1EntryID(BSTR* Email1EntryID/*[out,retval]*/)
{
  return (*this)->get_Email1EntryID(Email1EntryID);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email1EntryID(void)
{
  BSTR Email1EntryID = 0;
  OLECHECK(this->get_Email1EntryID((BSTR*)&Email1EntryID));
  return Email1EntryID;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email2Address(BSTR* Email2Address/*[out,retval]*/)
{
  return (*this)->get_Email2Address(Email2Address);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email2Address(void)
{
  BSTR Email2Address = 0;
  OLECHECK(this->get_Email2Address((BSTR*)&Email2Address));
  return Email2Address;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email2Address(BSTR Email2Address/*[in]*/)
{
  return (*this)->set_Email2Address(Email2Address);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email2AddressType(BSTR* Email2AddressType/*[out,retval]*/)
{
  return (*this)->get_Email2AddressType(Email2AddressType);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email2AddressType(void)
{
  BSTR Email2AddressType = 0;
  OLECHECK(this->get_Email2AddressType((BSTR*)&Email2AddressType));
  return Email2AddressType;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email2AddressType(BSTR Email2AddressType/*[in]*/)
{
  return (*this)->set_Email2AddressType(Email2AddressType);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email2DisplayName(BSTR* Email2DisplayName/*[out,retval]*/)
{
  return (*this)->get_Email2DisplayName(Email2DisplayName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email2DisplayName(void)
{
  BSTR Email2DisplayName = 0;
  OLECHECK(this->get_Email2DisplayName((BSTR*)&Email2DisplayName));
  return Email2DisplayName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email2EntryID(BSTR* Email2EntryID/*[out,retval]*/)
{
  return (*this)->get_Email2EntryID(Email2EntryID);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email2EntryID(void)
{
  BSTR Email2EntryID = 0;
  OLECHECK(this->get_Email2EntryID((BSTR*)&Email2EntryID));
  return Email2EntryID;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email3Address(BSTR* Email3Address/*[out,retval]*/)
{
  return (*this)->get_Email3Address(Email3Address);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email3Address(void)
{
  BSTR Email3Address = 0;
  OLECHECK(this->get_Email3Address((BSTR*)&Email3Address));
  return Email3Address;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email3Address(BSTR Email3Address/*[in]*/)
{
  return (*this)->set_Email3Address(Email3Address);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email3AddressType(BSTR* Email3AddressType/*[out,retval]*/)
{
  return (*this)->get_Email3AddressType(Email3AddressType);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email3AddressType(void)
{
  BSTR Email3AddressType = 0;
  OLECHECK(this->get_Email3AddressType((BSTR*)&Email3AddressType));
  return Email3AddressType;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email3AddressType(BSTR Email3AddressType/*[in]*/)
{
  return (*this)->set_Email3AddressType(Email3AddressType);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email3DisplayName(BSTR* Email3DisplayName/*[out,retval]*/)
{
  return (*this)->get_Email3DisplayName(Email3DisplayName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email3DisplayName(void)
{
  BSTR Email3DisplayName = 0;
  OLECHECK(this->get_Email3DisplayName((BSTR*)&Email3DisplayName));
  return Email3DisplayName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Email3EntryID(BSTR* Email3EntryID/*[out,retval]*/)
{
  return (*this)->get_Email3EntryID(Email3EntryID);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Email3EntryID(void)
{
  BSTR Email3EntryID = 0;
  OLECHECK(this->get_Email3EntryID((BSTR*)&Email3EntryID));
  return Email3EntryID;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FileAs(BSTR* FileAs/*[out,retval]*/)
{
  return (*this)->get_FileAs(FileAs);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_FileAs(void)
{
  BSTR FileAs = 0;
  OLECHECK(this->get_FileAs((BSTR*)&FileAs));
  return FileAs;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_FileAs(BSTR FileAs/*[in]*/)
{
  return (*this)->set_FileAs(FileAs);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FirstName(BSTR* FirstName/*[out,retval]*/)
{
  return (*this)->get_FirstName(FirstName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_FirstName(void)
{
  BSTR FirstName = 0;
  OLECHECK(this->get_FirstName((BSTR*)&FirstName));
  return FirstName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_FirstName(BSTR FirstName/*[in]*/)
{
  return (*this)->set_FirstName(FirstName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FTPSite(BSTR* FTPSite/*[out,retval]*/)
{
  return (*this)->get_FTPSite(FTPSite);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_FTPSite(void)
{
  BSTR FTPSite = 0;
  OLECHECK(this->get_FTPSite((BSTR*)&FTPSite));
  return FTPSite;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_FTPSite(BSTR FTPSite/*[in]*/)
{
  return (*this)->set_FTPSite(FTPSite);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FullName(BSTR* FullName/*[out,retval]*/)
{
  return (*this)->get_FullName(FullName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_FullName(void)
{
  BSTR FullName = 0;
  OLECHECK(this->get_FullName((BSTR*)&FullName));
  return FullName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_FullName(BSTR FullName/*[in]*/)
{
  return (*this)->set_FullName(FullName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_FullNameAndCompany(BSTR* FullNameAndCompany/*[out,retval]*/)
{
  return (*this)->get_FullNameAndCompany(FullNameAndCompany);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_FullNameAndCompany(void)
{
  BSTR FullNameAndCompany = 0;
  OLECHECK(this->get_FullNameAndCompany((BSTR*)&FullNameAndCompany));
  return FullNameAndCompany;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Gender(Outlook_xp::OlGender* Gender/*[out,retval]*/)
{
  return (*this)->get_Gender(Gender);
}

template <class T> Outlook_xp::OlGender __fastcall
TCOM_ContactItemT<T>::get_Gender(void)
{
  Outlook_xp::OlGender Gender;
  OLECHECK(this->get_Gender((Outlook_xp::OlGender*)&Gender));
  return Gender;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Gender(Outlook_xp::OlGender Gender/*[in]*/)
{
  return (*this)->set_Gender(Gender);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_GovernmentIDNumber(BSTR* GovernmentIDNumber/*[out,retval]*/)
{
  return (*this)->get_GovernmentIDNumber(GovernmentIDNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_GovernmentIDNumber(void)
{
  BSTR GovernmentIDNumber = 0;
  OLECHECK(this->get_GovernmentIDNumber((BSTR*)&GovernmentIDNumber));
  return GovernmentIDNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_GovernmentIDNumber(BSTR GovernmentIDNumber/*[in]*/)
{
  return (*this)->set_GovernmentIDNumber(GovernmentIDNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Hobby(BSTR* Hobby/*[out,retval]*/)
{
  return (*this)->get_Hobby(Hobby);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Hobby(void)
{
  BSTR Hobby = 0;
  OLECHECK(this->get_Hobby((BSTR*)&Hobby));
  return Hobby;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Hobby(BSTR Hobby/*[in]*/)
{
  return (*this)->set_Hobby(Hobby);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Home2TelephoneNumber(BSTR* Home2TelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_Home2TelephoneNumber(Home2TelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Home2TelephoneNumber(void)
{
  BSTR Home2TelephoneNumber = 0;
  OLECHECK(this->get_Home2TelephoneNumber((BSTR*)&Home2TelephoneNumber));
  return Home2TelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Home2TelephoneNumber(BSTR Home2TelephoneNumber/*[in]*/)
{
  return (*this)->set_Home2TelephoneNumber(Home2TelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddress(BSTR* HomeAddress/*[out,retval]*/)
{
  return (*this)->get_HomeAddress(HomeAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddress(void)
{
  BSTR HomeAddress = 0;
  OLECHECK(this->get_HomeAddress((BSTR*)&HomeAddress));
  return HomeAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddress(BSTR HomeAddress/*[in]*/)
{
  return (*this)->set_HomeAddress(HomeAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressCity(BSTR* HomeAddressCity/*[out,retval]*/)
{
  return (*this)->get_HomeAddressCity(HomeAddressCity);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressCity(void)
{
  BSTR HomeAddressCity = 0;
  OLECHECK(this->get_HomeAddressCity((BSTR*)&HomeAddressCity));
  return HomeAddressCity;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressCity(BSTR HomeAddressCity/*[in]*/)
{
  return (*this)->set_HomeAddressCity(HomeAddressCity);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressCountry(BSTR* HomeAddressCountry/*[out,retval]*/)
{
  return (*this)->get_HomeAddressCountry(HomeAddressCountry);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressCountry(void)
{
  BSTR HomeAddressCountry = 0;
  OLECHECK(this->get_HomeAddressCountry((BSTR*)&HomeAddressCountry));
  return HomeAddressCountry;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressCountry(BSTR HomeAddressCountry/*[in]*/)
{
  return (*this)->set_HomeAddressCountry(HomeAddressCountry);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressPostalCode(BSTR* HomeAddressPostalCode/*[out,retval]*/)
{
  return (*this)->get_HomeAddressPostalCode(HomeAddressPostalCode);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressPostalCode(void)
{
  BSTR HomeAddressPostalCode = 0;
  OLECHECK(this->get_HomeAddressPostalCode((BSTR*)&HomeAddressPostalCode));
  return HomeAddressPostalCode;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressPostalCode(BSTR HomeAddressPostalCode/*[in]*/)
{
  return (*this)->set_HomeAddressPostalCode(HomeAddressPostalCode);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressPostOfficeBox(BSTR* HomeAddressPostOfficeBox/*[out,retval]*/)
{
  return (*this)->get_HomeAddressPostOfficeBox(HomeAddressPostOfficeBox);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressPostOfficeBox(void)
{
  BSTR HomeAddressPostOfficeBox = 0;
  OLECHECK(this->get_HomeAddressPostOfficeBox((BSTR*)&HomeAddressPostOfficeBox));
  return HomeAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressPostOfficeBox(BSTR HomeAddressPostOfficeBox/*[in]*/)
{
  return (*this)->set_HomeAddressPostOfficeBox(HomeAddressPostOfficeBox);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressState(BSTR* HomeAddressState/*[out,retval]*/)
{
  return (*this)->get_HomeAddressState(HomeAddressState);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressState(void)
{
  BSTR HomeAddressState = 0;
  OLECHECK(this->get_HomeAddressState((BSTR*)&HomeAddressState));
  return HomeAddressState;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressState(BSTR HomeAddressState/*[in]*/)
{
  return (*this)->set_HomeAddressState(HomeAddressState);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeAddressStreet(BSTR* HomeAddressStreet/*[out,retval]*/)
{
  return (*this)->get_HomeAddressStreet(HomeAddressStreet);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeAddressStreet(void)
{
  BSTR HomeAddressStreet = 0;
  OLECHECK(this->get_HomeAddressStreet((BSTR*)&HomeAddressStreet));
  return HomeAddressStreet;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeAddressStreet(BSTR HomeAddressStreet/*[in]*/)
{
  return (*this)->set_HomeAddressStreet(HomeAddressStreet);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeFaxNumber(BSTR* HomeFaxNumber/*[out,retval]*/)
{
  return (*this)->get_HomeFaxNumber(HomeFaxNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeFaxNumber(void)
{
  BSTR HomeFaxNumber = 0;
  OLECHECK(this->get_HomeFaxNumber((BSTR*)&HomeFaxNumber));
  return HomeFaxNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeFaxNumber(BSTR HomeFaxNumber/*[in]*/)
{
  return (*this)->set_HomeFaxNumber(HomeFaxNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_HomeTelephoneNumber(BSTR* HomeTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_HomeTelephoneNumber(HomeTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_HomeTelephoneNumber(void)
{
  BSTR HomeTelephoneNumber = 0;
  OLECHECK(this->get_HomeTelephoneNumber((BSTR*)&HomeTelephoneNumber));
  return HomeTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_HomeTelephoneNumber(BSTR HomeTelephoneNumber/*[in]*/)
{
  return (*this)->set_HomeTelephoneNumber(HomeTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Initials(BSTR* Initials/*[out,retval]*/)
{
  return (*this)->get_Initials(Initials);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Initials(void)
{
  BSTR Initials = 0;
  OLECHECK(this->get_Initials((BSTR*)&Initials));
  return Initials;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Initials(BSTR Initials/*[in]*/)
{
  return (*this)->set_Initials(Initials);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_InternetFreeBusyAddress(BSTR* InternetFreeBusyAddress/*[out,retval]*/)
{
  return (*this)->get_InternetFreeBusyAddress(InternetFreeBusyAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_InternetFreeBusyAddress(void)
{
  BSTR InternetFreeBusyAddress = 0;
  OLECHECK(this->get_InternetFreeBusyAddress((BSTR*)&InternetFreeBusyAddress));
  return InternetFreeBusyAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_InternetFreeBusyAddress(BSTR InternetFreeBusyAddress/*[in]*/)
{
  return (*this)->set_InternetFreeBusyAddress(InternetFreeBusyAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ISDNNumber(BSTR* ISDNNumber/*[out,retval]*/)
{
  return (*this)->get_ISDNNumber(ISDNNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ISDNNumber(void)
{
  BSTR ISDNNumber = 0;
  OLECHECK(this->get_ISDNNumber((BSTR*)&ISDNNumber));
  return ISDNNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_ISDNNumber(BSTR ISDNNumber/*[in]*/)
{
  return (*this)->set_ISDNNumber(ISDNNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_JobTitle(BSTR* JobTitle/*[out,retval]*/)
{
  return (*this)->get_JobTitle(JobTitle);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_JobTitle(void)
{
  BSTR JobTitle = 0;
  OLECHECK(this->get_JobTitle((BSTR*)&JobTitle));
  return JobTitle;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_JobTitle(BSTR JobTitle/*[in]*/)
{
  return (*this)->set_JobTitle(JobTitle);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Journal(VARIANT_BOOL* Journal/*[out,retval]*/)
{
  return (*this)->get_Journal(Journal);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ContactItemT<T>::get_Journal(void)
{
  VARIANT_BOOL Journal;
  OLECHECK(this->get_Journal((VARIANT_BOOL*)&Journal));
  return Journal;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Journal(VARIANT_BOOL Journal/*[in]*/)
{
  return (*this)->set_Journal(Journal);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Language(BSTR* Language/*[out,retval]*/)
{
  return (*this)->get_Language(Language);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Language(void)
{
  BSTR Language = 0;
  OLECHECK(this->get_Language((BSTR*)&Language));
  return Language;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Language(BSTR Language/*[in]*/)
{
  return (*this)->set_Language(Language);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstAndSuffix(BSTR* LastFirstAndSuffix/*[out,retval]*/)
{
  return (*this)->get_LastFirstAndSuffix(LastFirstAndSuffix);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstAndSuffix(void)
{
  BSTR LastFirstAndSuffix = 0;
  OLECHECK(this->get_LastFirstAndSuffix((BSTR*)&LastFirstAndSuffix));
  return LastFirstAndSuffix;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpace(BSTR* LastFirstNoSpace/*[out,retval]*/)
{
  return (*this)->get_LastFirstNoSpace(LastFirstNoSpace);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpace(void)
{
  BSTR LastFirstNoSpace = 0;
  OLECHECK(this->get_LastFirstNoSpace((BSTR*)&LastFirstNoSpace));
  return LastFirstNoSpace;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpaceCompany(BSTR* LastFirstNoSpaceCompany/*[out,retval]*/)
{
  return (*this)->get_LastFirstNoSpaceCompany(LastFirstNoSpaceCompany);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpaceCompany(void)
{
  BSTR LastFirstNoSpaceCompany = 0;
  OLECHECK(this->get_LastFirstNoSpaceCompany((BSTR*)&LastFirstNoSpaceCompany));
  return LastFirstNoSpaceCompany;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstSpaceOnly(BSTR* LastFirstSpaceOnly/*[out,retval]*/)
{
  return (*this)->get_LastFirstSpaceOnly(LastFirstSpaceOnly);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstSpaceOnly(void)
{
  BSTR LastFirstSpaceOnly = 0;
  OLECHECK(this->get_LastFirstSpaceOnly((BSTR*)&LastFirstSpaceOnly));
  return LastFirstSpaceOnly;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstSpaceOnlyCompany(BSTR* LastFirstSpaceOnlyCompany/*[out,retval]*/)
{
  return (*this)->get_LastFirstSpaceOnlyCompany(LastFirstSpaceOnlyCompany);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstSpaceOnlyCompany(void)
{
  BSTR LastFirstSpaceOnlyCompany = 0;
  OLECHECK(this->get_LastFirstSpaceOnlyCompany((BSTR*)&LastFirstSpaceOnlyCompany));
  return LastFirstSpaceOnlyCompany;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastName(BSTR* LastName/*[out,retval]*/)
{
  return (*this)->get_LastName(LastName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastName(void)
{
  BSTR LastName = 0;
  OLECHECK(this->get_LastName((BSTR*)&LastName));
  return LastName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_LastName(BSTR LastName/*[in]*/)
{
  return (*this)->set_LastName(LastName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastNameAndFirstName(BSTR* LastNameAndFirstName/*[out,retval]*/)
{
  return (*this)->get_LastNameAndFirstName(LastNameAndFirstName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastNameAndFirstName(void)
{
  BSTR LastNameAndFirstName = 0;
  OLECHECK(this->get_LastNameAndFirstName((BSTR*)&LastNameAndFirstName));
  return LastNameAndFirstName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddress(BSTR* MailingAddress/*[out,retval]*/)
{
  return (*this)->get_MailingAddress(MailingAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddress(void)
{
  BSTR MailingAddress = 0;
  OLECHECK(this->get_MailingAddress((BSTR*)&MailingAddress));
  return MailingAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddress(BSTR MailingAddress/*[in]*/)
{
  return (*this)->set_MailingAddress(MailingAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressCity(BSTR* MailingAddressCity/*[out,retval]*/)
{
  return (*this)->get_MailingAddressCity(MailingAddressCity);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressCity(void)
{
  BSTR MailingAddressCity = 0;
  OLECHECK(this->get_MailingAddressCity((BSTR*)&MailingAddressCity));
  return MailingAddressCity;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressCity(BSTR MailingAddressCity/*[in]*/)
{
  return (*this)->set_MailingAddressCity(MailingAddressCity);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressCountry(BSTR* MailingAddressCountry/*[out,retval]*/)
{
  return (*this)->get_MailingAddressCountry(MailingAddressCountry);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressCountry(void)
{
  BSTR MailingAddressCountry = 0;
  OLECHECK(this->get_MailingAddressCountry((BSTR*)&MailingAddressCountry));
  return MailingAddressCountry;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressCountry(BSTR MailingAddressCountry/*[in]*/)
{
  return (*this)->set_MailingAddressCountry(MailingAddressCountry);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressPostalCode(BSTR* MailingAddressPostalCode/*[out,retval]*/)
{
  return (*this)->get_MailingAddressPostalCode(MailingAddressPostalCode);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressPostalCode(void)
{
  BSTR MailingAddressPostalCode = 0;
  OLECHECK(this->get_MailingAddressPostalCode((BSTR*)&MailingAddressPostalCode));
  return MailingAddressPostalCode;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressPostalCode(BSTR MailingAddressPostalCode/*[in]*/)
{
  return (*this)->set_MailingAddressPostalCode(MailingAddressPostalCode);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressPostOfficeBox(BSTR* MailingAddressPostOfficeBox/*[out,retval]*/)
{
  return (*this)->get_MailingAddressPostOfficeBox(MailingAddressPostOfficeBox);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressPostOfficeBox(void)
{
  BSTR MailingAddressPostOfficeBox = 0;
  OLECHECK(this->get_MailingAddressPostOfficeBox((BSTR*)&MailingAddressPostOfficeBox));
  return MailingAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressPostOfficeBox(BSTR MailingAddressPostOfficeBox/*[in]*/)
{
  return (*this)->set_MailingAddressPostOfficeBox(MailingAddressPostOfficeBox);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressState(BSTR* MailingAddressState/*[out,retval]*/)
{
  return (*this)->get_MailingAddressState(MailingAddressState);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressState(void)
{
  BSTR MailingAddressState = 0;
  OLECHECK(this->get_MailingAddressState((BSTR*)&MailingAddressState));
  return MailingAddressState;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressState(BSTR MailingAddressState/*[in]*/)
{
  return (*this)->set_MailingAddressState(MailingAddressState);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MailingAddressStreet(BSTR* MailingAddressStreet/*[out,retval]*/)
{
  return (*this)->get_MailingAddressStreet(MailingAddressStreet);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MailingAddressStreet(void)
{
  BSTR MailingAddressStreet = 0;
  OLECHECK(this->get_MailingAddressStreet((BSTR*)&MailingAddressStreet));
  return MailingAddressStreet;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MailingAddressStreet(BSTR MailingAddressStreet/*[in]*/)
{
  return (*this)->set_MailingAddressStreet(MailingAddressStreet);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ManagerName(BSTR* ManagerName/*[out,retval]*/)
{
  return (*this)->get_ManagerName(ManagerName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ManagerName(void)
{
  BSTR ManagerName = 0;
  OLECHECK(this->get_ManagerName((BSTR*)&ManagerName));
  return ManagerName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_ManagerName(BSTR ManagerName/*[in]*/)
{
  return (*this)->set_ManagerName(ManagerName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MiddleName(BSTR* MiddleName/*[out,retval]*/)
{
  return (*this)->get_MiddleName(MiddleName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MiddleName(void)
{
  BSTR MiddleName = 0;
  OLECHECK(this->get_MiddleName((BSTR*)&MiddleName));
  return MiddleName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MiddleName(BSTR MiddleName/*[in]*/)
{
  return (*this)->set_MiddleName(MiddleName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MobileTelephoneNumber(BSTR* MobileTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_MobileTelephoneNumber(MobileTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_MobileTelephoneNumber(void)
{
  BSTR MobileTelephoneNumber = 0;
  OLECHECK(this->get_MobileTelephoneNumber((BSTR*)&MobileTelephoneNumber));
  return MobileTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MobileTelephoneNumber(BSTR MobileTelephoneNumber/*[in]*/)
{
  return (*this)->set_MobileTelephoneNumber(MobileTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_NetMeetingAlias(BSTR* NetMeetingAlias/*[out,retval]*/)
{
  return (*this)->get_NetMeetingAlias(NetMeetingAlias);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_NetMeetingAlias(void)
{
  BSTR NetMeetingAlias = 0;
  OLECHECK(this->get_NetMeetingAlias((BSTR*)&NetMeetingAlias));
  return NetMeetingAlias;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_NetMeetingAlias(BSTR NetMeetingAlias/*[in]*/)
{
  return (*this)->set_NetMeetingAlias(NetMeetingAlias);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/)
{
  return (*this)->get_NetMeetingServer(NetMeetingServer);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_NetMeetingServer(void)
{
  BSTR NetMeetingServer = 0;
  OLECHECK(this->get_NetMeetingServer((BSTR*)&NetMeetingServer));
  return NetMeetingServer;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/)
{
  return (*this)->set_NetMeetingServer(NetMeetingServer);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_NickName(BSTR* NickName/*[out,retval]*/)
{
  return (*this)->get_NickName(NickName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_NickName(void)
{
  BSTR NickName = 0;
  OLECHECK(this->get_NickName((BSTR*)&NickName));
  return NickName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_NickName(BSTR NickName/*[in]*/)
{
  return (*this)->set_NickName(NickName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OfficeLocation(BSTR* OfficeLocation/*[out,retval]*/)
{
  return (*this)->get_OfficeLocation(OfficeLocation);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OfficeLocation(void)
{
  BSTR OfficeLocation = 0;
  OLECHECK(this->get_OfficeLocation((BSTR*)&OfficeLocation));
  return OfficeLocation;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OfficeLocation(BSTR OfficeLocation/*[in]*/)
{
  return (*this)->set_OfficeLocation(OfficeLocation);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OrganizationalIDNumber(BSTR* OrganizationalIDNumber/*[out,retval]*/)
{
  return (*this)->get_OrganizationalIDNumber(OrganizationalIDNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OrganizationalIDNumber(void)
{
  BSTR OrganizationalIDNumber = 0;
  OLECHECK(this->get_OrganizationalIDNumber((BSTR*)&OrganizationalIDNumber));
  return OrganizationalIDNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OrganizationalIDNumber(BSTR OrganizationalIDNumber/*[in]*/)
{
  return (*this)->set_OrganizationalIDNumber(OrganizationalIDNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddress(BSTR* OtherAddress/*[out,retval]*/)
{
  return (*this)->get_OtherAddress(OtherAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddress(void)
{
  BSTR OtherAddress = 0;
  OLECHECK(this->get_OtherAddress((BSTR*)&OtherAddress));
  return OtherAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddress(BSTR OtherAddress/*[in]*/)
{
  return (*this)->set_OtherAddress(OtherAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressCity(BSTR* OtherAddressCity/*[out,retval]*/)
{
  return (*this)->get_OtherAddressCity(OtherAddressCity);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressCity(void)
{
  BSTR OtherAddressCity = 0;
  OLECHECK(this->get_OtherAddressCity((BSTR*)&OtherAddressCity));
  return OtherAddressCity;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressCity(BSTR OtherAddressCity/*[in]*/)
{
  return (*this)->set_OtherAddressCity(OtherAddressCity);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressCountry(BSTR* OtherAddressCountry/*[out,retval]*/)
{
  return (*this)->get_OtherAddressCountry(OtherAddressCountry);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressCountry(void)
{
  BSTR OtherAddressCountry = 0;
  OLECHECK(this->get_OtherAddressCountry((BSTR*)&OtherAddressCountry));
  return OtherAddressCountry;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressCountry(BSTR OtherAddressCountry/*[in]*/)
{
  return (*this)->set_OtherAddressCountry(OtherAddressCountry);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressPostalCode(BSTR* OtherAddressPostalCode/*[out,retval]*/)
{
  return (*this)->get_OtherAddressPostalCode(OtherAddressPostalCode);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressPostalCode(void)
{
  BSTR OtherAddressPostalCode = 0;
  OLECHECK(this->get_OtherAddressPostalCode((BSTR*)&OtherAddressPostalCode));
  return OtherAddressPostalCode;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressPostalCode(BSTR OtherAddressPostalCode/*[in]*/)
{
  return (*this)->set_OtherAddressPostalCode(OtherAddressPostalCode);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressPostOfficeBox(BSTR* OtherAddressPostOfficeBox/*[out,retval]*/)
{
  return (*this)->get_OtherAddressPostOfficeBox(OtherAddressPostOfficeBox);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressPostOfficeBox(void)
{
  BSTR OtherAddressPostOfficeBox = 0;
  OLECHECK(this->get_OtherAddressPostOfficeBox((BSTR*)&OtherAddressPostOfficeBox));
  return OtherAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressPostOfficeBox(BSTR OtherAddressPostOfficeBox/*[in]*/)
{
  return (*this)->set_OtherAddressPostOfficeBox(OtherAddressPostOfficeBox);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressState(BSTR* OtherAddressState/*[out,retval]*/)
{
  return (*this)->get_OtherAddressState(OtherAddressState);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressState(void)
{
  BSTR OtherAddressState = 0;
  OLECHECK(this->get_OtherAddressState((BSTR*)&OtherAddressState));
  return OtherAddressState;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressState(BSTR OtherAddressState/*[in]*/)
{
  return (*this)->set_OtherAddressState(OtherAddressState);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherAddressStreet(BSTR* OtherAddressStreet/*[out,retval]*/)
{
  return (*this)->get_OtherAddressStreet(OtherAddressStreet);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherAddressStreet(void)
{
  BSTR OtherAddressStreet = 0;
  OLECHECK(this->get_OtherAddressStreet((BSTR*)&OtherAddressStreet));
  return OtherAddressStreet;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherAddressStreet(BSTR OtherAddressStreet/*[in]*/)
{
  return (*this)->set_OtherAddressStreet(OtherAddressStreet);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherFaxNumber(BSTR* OtherFaxNumber/*[out,retval]*/)
{
  return (*this)->get_OtherFaxNumber(OtherFaxNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherFaxNumber(void)
{
  BSTR OtherFaxNumber = 0;
  OLECHECK(this->get_OtherFaxNumber((BSTR*)&OtherFaxNumber));
  return OtherFaxNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherFaxNumber(BSTR OtherFaxNumber/*[in]*/)
{
  return (*this)->set_OtherFaxNumber(OtherFaxNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_OtherTelephoneNumber(BSTR* OtherTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_OtherTelephoneNumber(OtherTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_OtherTelephoneNumber(void)
{
  BSTR OtherTelephoneNumber = 0;
  OLECHECK(this->get_OtherTelephoneNumber((BSTR*)&OtherTelephoneNumber));
  return OtherTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_OtherTelephoneNumber(BSTR OtherTelephoneNumber/*[in]*/)
{
  return (*this)->set_OtherTelephoneNumber(OtherTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_PagerNumber(BSTR* PagerNumber/*[out,retval]*/)
{
  return (*this)->get_PagerNumber(PagerNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_PagerNumber(void)
{
  BSTR PagerNumber = 0;
  OLECHECK(this->get_PagerNumber((BSTR*)&PagerNumber));
  return PagerNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_PagerNumber(BSTR PagerNumber/*[in]*/)
{
  return (*this)->set_PagerNumber(PagerNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_PersonalHomePage(BSTR* PersonalHomePage/*[out,retval]*/)
{
  return (*this)->get_PersonalHomePage(PersonalHomePage);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_PersonalHomePage(void)
{
  BSTR PersonalHomePage = 0;
  OLECHECK(this->get_PersonalHomePage((BSTR*)&PersonalHomePage));
  return PersonalHomePage;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_PersonalHomePage(BSTR PersonalHomePage/*[in]*/)
{
  return (*this)->set_PersonalHomePage(PersonalHomePage);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_PrimaryTelephoneNumber(BSTR* PrimaryTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_PrimaryTelephoneNumber(PrimaryTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_PrimaryTelephoneNumber(void)
{
  BSTR PrimaryTelephoneNumber = 0;
  OLECHECK(this->get_PrimaryTelephoneNumber((BSTR*)&PrimaryTelephoneNumber));
  return PrimaryTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_PrimaryTelephoneNumber(BSTR PrimaryTelephoneNumber/*[in]*/)
{
  return (*this)->set_PrimaryTelephoneNumber(PrimaryTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Profession(BSTR* Profession/*[out,retval]*/)
{
  return (*this)->get_Profession(Profession);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Profession(void)
{
  BSTR Profession = 0;
  OLECHECK(this->get_Profession((BSTR*)&Profession));
  return Profession;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Profession(BSTR Profession/*[in]*/)
{
  return (*this)->set_Profession(Profession);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_RadioTelephoneNumber(BSTR* RadioTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_RadioTelephoneNumber(RadioTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_RadioTelephoneNumber(void)
{
  BSTR RadioTelephoneNumber = 0;
  OLECHECK(this->get_RadioTelephoneNumber((BSTR*)&RadioTelephoneNumber));
  return RadioTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_RadioTelephoneNumber(BSTR RadioTelephoneNumber/*[in]*/)
{
  return (*this)->set_RadioTelephoneNumber(RadioTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ReferredBy(BSTR* ReferredBy/*[out,retval]*/)
{
  return (*this)->get_ReferredBy(ReferredBy);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_ReferredBy(void)
{
  BSTR ReferredBy = 0;
  OLECHECK(this->get_ReferredBy((BSTR*)&ReferredBy));
  return ReferredBy;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_ReferredBy(BSTR ReferredBy/*[in]*/)
{
  return (*this)->set_ReferredBy(ReferredBy);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_SelectedMailingAddress(Outlook_xp::OlMailingAddress* SelectedMailingAddress/*[out,retval]*/)
{
  return (*this)->get_SelectedMailingAddress(SelectedMailingAddress);
}

template <class T> Outlook_xp::OlMailingAddress __fastcall
TCOM_ContactItemT<T>::get_SelectedMailingAddress(void)
{
  Outlook_xp::OlMailingAddress SelectedMailingAddress;
  OLECHECK(this->get_SelectedMailingAddress((Outlook_xp::OlMailingAddress*)&SelectedMailingAddress));
  return SelectedMailingAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_SelectedMailingAddress(Outlook_xp::OlMailingAddress SelectedMailingAddress/*[in]*/)
{
  return (*this)->set_SelectedMailingAddress(SelectedMailingAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Spouse(BSTR* Spouse/*[out,retval]*/)
{
  return (*this)->get_Spouse(Spouse);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Spouse(void)
{
  BSTR Spouse = 0;
  OLECHECK(this->get_Spouse((BSTR*)&Spouse));
  return Spouse;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Spouse(BSTR Spouse/*[in]*/)
{
  return (*this)->set_Spouse(Spouse);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Suffix(BSTR* Suffix/*[out,retval]*/)
{
  return (*this)->get_Suffix(Suffix);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Suffix(void)
{
  BSTR Suffix = 0;
  OLECHECK(this->get_Suffix((BSTR*)&Suffix));
  return Suffix;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Suffix(BSTR Suffix/*[in]*/)
{
  return (*this)->set_Suffix(Suffix);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_TelexNumber(BSTR* TelexNumber/*[out,retval]*/)
{
  return (*this)->get_TelexNumber(TelexNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_TelexNumber(void)
{
  BSTR TelexNumber = 0;
  OLECHECK(this->get_TelexNumber((BSTR*)&TelexNumber));
  return TelexNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_TelexNumber(BSTR TelexNumber/*[in]*/)
{
  return (*this)->set_TelexNumber(TelexNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Title(BSTR* Title/*[out,retval]*/)
{
  return (*this)->get_Title(Title);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_Title(void)
{
  BSTR Title = 0;
  OLECHECK(this->get_Title((BSTR*)&Title));
  return Title;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Title(BSTR Title/*[in]*/)
{
  return (*this)->set_Title(Title);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_TTYTDDTelephoneNumber(BSTR* TTYTDDTelephoneNumber/*[out,retval]*/)
{
  return (*this)->get_TTYTDDTelephoneNumber(TTYTDDTelephoneNumber);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_TTYTDDTelephoneNumber(void)
{
  BSTR TTYTDDTelephoneNumber = 0;
  OLECHECK(this->get_TTYTDDTelephoneNumber((BSTR*)&TTYTDDTelephoneNumber));
  return TTYTDDTelephoneNumber;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_TTYTDDTelephoneNumber(BSTR TTYTDDTelephoneNumber/*[in]*/)
{
  return (*this)->set_TTYTDDTelephoneNumber(TTYTDDTelephoneNumber);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_User1(BSTR* User1/*[out,retval]*/)
{
  return (*this)->get_User1(User1);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_User1(void)
{
  BSTR User1 = 0;
  OLECHECK(this->get_User1((BSTR*)&User1));
  return User1;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_User1(BSTR User1/*[in]*/)
{
  return (*this)->set_User1(User1);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_User2(BSTR* User2/*[out,retval]*/)
{
  return (*this)->get_User2(User2);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_User2(void)
{
  BSTR User2 = 0;
  OLECHECK(this->get_User2((BSTR*)&User2));
  return User2;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_User2(BSTR User2/*[in]*/)
{
  return (*this)->set_User2(User2);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_User3(BSTR* User3/*[out,retval]*/)
{
  return (*this)->get_User3(User3);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_User3(void)
{
  BSTR User3 = 0;
  OLECHECK(this->get_User3((BSTR*)&User3));
  return User3;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_User3(BSTR User3/*[in]*/)
{
  return (*this)->set_User3(User3);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_User4(BSTR* User4/*[out,retval]*/)
{
  return (*this)->get_User4(User4);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_User4(void)
{
  BSTR User4 = 0;
  OLECHECK(this->get_User4((BSTR*)&User4));
  return User4;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_User4(BSTR User4/*[in]*/)
{
  return (*this)->set_User4(User4);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_UserCertificate(BSTR* UserCertificate/*[out,retval]*/)
{
  return (*this)->get_UserCertificate(UserCertificate);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_UserCertificate(void)
{
  BSTR UserCertificate = 0;
  OLECHECK(this->get_UserCertificate((BSTR*)&UserCertificate));
  return UserCertificate;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_UserCertificate(BSTR UserCertificate/*[in]*/)
{
  return (*this)->set_UserCertificate(UserCertificate);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_WebPage(BSTR* WebPage/*[out,retval]*/)
{
  return (*this)->get_WebPage(WebPage);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_WebPage(void)
{
  BSTR WebPage = 0;
  OLECHECK(this->get_WebPage((BSTR*)&WebPage));
  return WebPage;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_WebPage(BSTR WebPage/*[in]*/)
{
  return (*this)->set_WebPage(WebPage);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_YomiCompanyName(BSTR* YomiCompanyName/*[out,retval]*/)
{
  return (*this)->get_YomiCompanyName(YomiCompanyName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_YomiCompanyName(void)
{
  BSTR YomiCompanyName = 0;
  OLECHECK(this->get_YomiCompanyName((BSTR*)&YomiCompanyName));
  return YomiCompanyName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_YomiCompanyName(BSTR YomiCompanyName/*[in]*/)
{
  return (*this)->set_YomiCompanyName(YomiCompanyName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_YomiFirstName(BSTR* YomiFirstName/*[out,retval]*/)
{
  return (*this)->get_YomiFirstName(YomiFirstName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_YomiFirstName(void)
{
  BSTR YomiFirstName = 0;
  OLECHECK(this->get_YomiFirstName((BSTR*)&YomiFirstName));
  return YomiFirstName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_YomiFirstName(BSTR YomiFirstName/*[in]*/)
{
  return (*this)->set_YomiFirstName(YomiFirstName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_YomiLastName(BSTR* YomiLastName/*[out,retval]*/)
{
  return (*this)->get_YomiLastName(YomiLastName);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_YomiLastName(void)
{
  BSTR YomiLastName = 0;
  OLECHECK(this->get_YomiLastName((BSTR*)&YomiLastName));
  return YomiLastName;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_YomiLastName(BSTR YomiLastName/*[in]*/)
{
  return (*this)->set_YomiLastName(YomiLastName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::ForwardAsVcard(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->ForwardAsVcard(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_ContactItemT<T>::ForwardAsVcard(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->ForwardAsVcard((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_ContactItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_ContactItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpaceAndSuffix(BSTR* LastFirstNoSpaceAndSuffix/*[out,retval]*/)
{
  return (*this)->get_LastFirstNoSpaceAndSuffix(LastFirstNoSpaceAndSuffix);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_LastFirstNoSpaceAndSuffix(void)
{
  BSTR LastFirstNoSpaceAndSuffix = 0;
  OLECHECK(this->get_LastFirstNoSpaceAndSuffix((BSTR*)&LastFirstNoSpaceAndSuffix));
  return LastFirstNoSpaceAndSuffix;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_ContactItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_IMAddress(BSTR* IMAddress/*[out,retval]*/)
{
  return (*this)->get_IMAddress(IMAddress);
}

template <class T> BSTR __fastcall
TCOM_ContactItemT<T>::get_IMAddress(void)
{
  BSTR IMAddress = 0;
  OLECHECK(this->get_IMAddress((BSTR*)&IMAddress));
  return IMAddress;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_IMAddress(BSTR IMAddress/*[in]*/)
{
  return (*this)->set_IMAddress(IMAddress);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_ContactItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email1DisplayName(BSTR Email1DisplayName/*[in]*/)
{
  return (*this)->set_Email1DisplayName(Email1DisplayName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email2DisplayName(BSTR Email2DisplayName/*[in]*/)
{
  return (*this)->set_Email2DisplayName(Email2DisplayName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::set_Email3DisplayName(BSTR Email3DisplayName/*[in]*/)
{
  return (*this)->set_Email3DisplayName(Email3DisplayName);
}

template <class T> HRESULT __fastcall
TCOM_ContactItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ContactItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _ContactItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063021-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ContactItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ContactItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ContactItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ContactItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_ContactItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_ContactItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ContactItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_ContactItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_ContactItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_ContactItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ContactItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_ContactItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ContactItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ContactItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ContactItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_ContactItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ContactItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ContactItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_ContactItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ContactItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ContactItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Account(BSTR* Account/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Account"), DISPID(14848));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Account /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Account(void)
{
  BSTR Account;
  this->get_Account((BSTR*)&Account);
  return Account;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Account(BSTR Account/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Account"), DISPID(14848));
  TAutoArgs<1> _args;
  _args[1] = Account /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Anniversary(DATE* Anniversary/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Anniversary"), DISPID(14913));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Anniversary /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ContactItemDispT<T>::get_Anniversary(void)
{
  DATE Anniversary;
  this->get_Anniversary((DATE*)&Anniversary);
  return Anniversary;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Anniversary(DATE Anniversary/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Anniversary"), DISPID(14913));
  TAutoArgs<1> _args;
  _args[1] = Anniversary /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_AssistantName(BSTR* AssistantName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssistantName"), DISPID(14896));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AssistantName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_AssistantName(void)
{
  BSTR AssistantName;
  this->get_AssistantName((BSTR*)&AssistantName);
  return AssistantName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_AssistantName(BSTR AssistantName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssistantName"), DISPID(14896));
  TAutoArgs<1> _args;
  _args[1] = AssistantName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_AssistantTelephoneNumber(BSTR* AssistantTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssistantTelephoneNumber"), DISPID(14894));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AssistantTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_AssistantTelephoneNumber(void)
{
  BSTR AssistantTelephoneNumber;
  this->get_AssistantTelephoneNumber((BSTR*)&AssistantTelephoneNumber);
  return AssistantTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_AssistantTelephoneNumber(BSTR AssistantTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssistantTelephoneNumber"), DISPID(14894));
  TAutoArgs<1> _args;
  _args[1] = AssistantTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Birthday(DATE* Birthday/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Birthday"), DISPID(14914));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Birthday /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ContactItemDispT<T>::get_Birthday(void)
{
  DATE Birthday;
  this->get_Birthday((DATE*)&Birthday);
  return Birthday;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Birthday(DATE Birthday/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Birthday"), DISPID(14914));
  TAutoArgs<1> _args;
  _args[1] = Birthday /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Business2TelephoneNumber(BSTR* Business2TelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Business2TelephoneNumber"), DISPID(14875));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Business2TelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Business2TelephoneNumber(void)
{
  BSTR Business2TelephoneNumber;
  this->get_Business2TelephoneNumber((BSTR*)&Business2TelephoneNumber);
  return Business2TelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Business2TelephoneNumber(BSTR Business2TelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Business2TelephoneNumber"), DISPID(14875));
  TAutoArgs<1> _args;
  _args[1] = Business2TelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddress(BSTR* BusinessAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddress"), DISPID(32795));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddress(void)
{
  BSTR BusinessAddress;
  this->get_BusinessAddress((BSTR*)&BusinessAddress);
  return BusinessAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddress(BSTR BusinessAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddress"), DISPID(32795));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressCity(BSTR* BusinessAddressCity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressCity"), DISPID(32838));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressCity /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressCity(void)
{
  BSTR BusinessAddressCity;
  this->get_BusinessAddressCity((BSTR*)&BusinessAddressCity);
  return BusinessAddressCity;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressCity(BSTR BusinessAddressCity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressCity"), DISPID(32838));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressCity /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressCountry(BSTR* BusinessAddressCountry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressCountry"), DISPID(32841));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressCountry /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressCountry(void)
{
  BSTR BusinessAddressCountry;
  this->get_BusinessAddressCountry((BSTR*)&BusinessAddressCountry);
  return BusinessAddressCountry;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressCountry(BSTR BusinessAddressCountry/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressCountry"), DISPID(32841));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressCountry /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressPostalCode(BSTR* BusinessAddressPostalCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressPostalCode"), DISPID(32840));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressPostalCode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressPostalCode(void)
{
  BSTR BusinessAddressPostalCode;
  this->get_BusinessAddressPostalCode((BSTR*)&BusinessAddressPostalCode);
  return BusinessAddressPostalCode;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressPostalCode(BSTR BusinessAddressPostalCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressPostalCode"), DISPID(32840));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressPostalCode /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressPostOfficeBox(BSTR* BusinessAddressPostOfficeBox/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressPostOfficeBox"), DISPID(32842));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressPostOfficeBox /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressPostOfficeBox(void)
{
  BSTR BusinessAddressPostOfficeBox;
  this->get_BusinessAddressPostOfficeBox((BSTR*)&BusinessAddressPostOfficeBox);
  return BusinessAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressPostOfficeBox(BSTR BusinessAddressPostOfficeBox/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressPostOfficeBox"), DISPID(32842));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressPostOfficeBox /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressState(BSTR* BusinessAddressState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressState"), DISPID(32839));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressState /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressState(void)
{
  BSTR BusinessAddressState;
  this->get_BusinessAddressState((BSTR*)&BusinessAddressState);
  return BusinessAddressState;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressState(BSTR BusinessAddressState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressState"), DISPID(32839));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressState /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessAddressStreet(BSTR* BusinessAddressStreet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressStreet"), DISPID(32837));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessAddressStreet /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessAddressStreet(void)
{
  BSTR BusinessAddressStreet;
  this->get_BusinessAddressStreet((BSTR*)&BusinessAddressStreet);
  return BusinessAddressStreet;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessAddressStreet(BSTR BusinessAddressStreet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessAddressStreet"), DISPID(32837));
  TAutoArgs<1> _args;
  _args[1] = BusinessAddressStreet /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessFaxNumber(BSTR* BusinessFaxNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessFaxNumber"), DISPID(14884));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessFaxNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessFaxNumber(void)
{
  BSTR BusinessFaxNumber;
  this->get_BusinessFaxNumber((BSTR*)&BusinessFaxNumber);
  return BusinessFaxNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessFaxNumber(BSTR BusinessFaxNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessFaxNumber"), DISPID(14884));
  TAutoArgs<1> _args;
  _args[1] = BusinessFaxNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessHomePage(BSTR* BusinessHomePage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessHomePage"), DISPID(14929));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessHomePage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessHomePage(void)
{
  BSTR BusinessHomePage;
  this->get_BusinessHomePage((BSTR*)&BusinessHomePage);
  return BusinessHomePage;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessHomePage(BSTR BusinessHomePage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessHomePage"), DISPID(14929));
  TAutoArgs<1> _args;
  _args[1] = BusinessHomePage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_BusinessTelephoneNumber(BSTR* BusinessTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessTelephoneNumber"), DISPID(14856));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BusinessTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_BusinessTelephoneNumber(void)
{
  BSTR BusinessTelephoneNumber;
  this->get_BusinessTelephoneNumber((BSTR*)&BusinessTelephoneNumber);
  return BusinessTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_BusinessTelephoneNumber(BSTR BusinessTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BusinessTelephoneNumber"), DISPID(14856));
  TAutoArgs<1> _args;
  _args[1] = BusinessTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CallbackTelephoneNumber(BSTR* CallbackTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CallbackTelephoneNumber"), DISPID(14850));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CallbackTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CallbackTelephoneNumber(void)
{
  BSTR CallbackTelephoneNumber;
  this->get_CallbackTelephoneNumber((BSTR*)&CallbackTelephoneNumber);
  return CallbackTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_CallbackTelephoneNumber(BSTR CallbackTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CallbackTelephoneNumber"), DISPID(14850));
  TAutoArgs<1> _args;
  _args[1] = CallbackTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CarTelephoneNumber(BSTR* CarTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CarTelephoneNumber"), DISPID(14878));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CarTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CarTelephoneNumber(void)
{
  BSTR CarTelephoneNumber;
  this->get_CarTelephoneNumber((BSTR*)&CarTelephoneNumber);
  return CarTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_CarTelephoneNumber(BSTR CarTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CarTelephoneNumber"), DISPID(14878));
  TAutoArgs<1> _args;
  _args[1] = CarTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Children(BSTR* Children/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Children"), DISPID(32780));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Children /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Children(void)
{
  BSTR Children;
  this->get_Children((BSTR*)&Children);
  return Children;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Children(BSTR Children/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Children"), DISPID(32780));
  TAutoArgs<1> _args;
  _args[1] = Children /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CompanyAndFullName(BSTR* CompanyAndFullName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyAndFullName"), DISPID(32792));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CompanyAndFullName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CompanyAndFullName(void)
{
  BSTR CompanyAndFullName;
  this->get_CompanyAndFullName((BSTR*)&CompanyAndFullName);
  return CompanyAndFullName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CompanyLastFirstNoSpace(BSTR* CompanyLastFirstNoSpace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyLastFirstNoSpace"), DISPID(32818));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CompanyLastFirstNoSpace /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CompanyLastFirstNoSpace(void)
{
  BSTR CompanyLastFirstNoSpace;
  this->get_CompanyLastFirstNoSpace((BSTR*)&CompanyLastFirstNoSpace);
  return CompanyLastFirstNoSpace;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CompanyLastFirstSpaceOnly(BSTR* CompanyLastFirstSpaceOnly/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyLastFirstSpaceOnly"), DISPID(32819));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CompanyLastFirstSpaceOnly /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CompanyLastFirstSpaceOnly(void)
{
  BSTR CompanyLastFirstSpaceOnly;
  this->get_CompanyLastFirstSpaceOnly((BSTR*)&CompanyLastFirstSpaceOnly);
  return CompanyLastFirstSpaceOnly;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CompanyMainTelephoneNumber(BSTR* CompanyMainTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyMainTelephoneNumber"), DISPID(14935));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CompanyMainTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CompanyMainTelephoneNumber(void)
{
  BSTR CompanyMainTelephoneNumber;
  this->get_CompanyMainTelephoneNumber((BSTR*)&CompanyMainTelephoneNumber);
  return CompanyMainTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_CompanyMainTelephoneNumber(BSTR CompanyMainTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyMainTelephoneNumber"), DISPID(14935));
  TAutoArgs<1> _args;
  _args[1] = CompanyMainTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CompanyName(BSTR* CompanyName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyName"), DISPID(14870));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CompanyName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CompanyName(void)
{
  BSTR CompanyName;
  this->get_CompanyName((BSTR*)&CompanyName);
  return CompanyName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_CompanyName(BSTR CompanyName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompanyName"), DISPID(14870));
  TAutoArgs<1> _args;
  _args[1] = CompanyName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ComputerNetworkName(BSTR* ComputerNetworkName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ComputerNetworkName"), DISPID(14921));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ComputerNetworkName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ComputerNetworkName(void)
{
  BSTR ComputerNetworkName;
  this->get_ComputerNetworkName((BSTR*)&ComputerNetworkName);
  return ComputerNetworkName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_ComputerNetworkName(BSTR ComputerNetworkName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ComputerNetworkName"), DISPID(14921));
  TAutoArgs<1> _args;
  _args[1] = ComputerNetworkName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_CustomerID(BSTR* CustomerID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomerID"), DISPID(14922));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CustomerID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_CustomerID(void)
{
  BSTR CustomerID;
  this->get_CustomerID((BSTR*)&CustomerID);
  return CustomerID;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_CustomerID(BSTR CustomerID/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CustomerID"), DISPID(14922));
  TAutoArgs<1> _args;
  _args[1] = CustomerID /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Department(BSTR* Department/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Department"), DISPID(14872));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Department /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Department(void)
{
  BSTR Department;
  this->get_Department((BSTR*)&Department);
  return Department;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Department(BSTR Department/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Department"), DISPID(14872));
  TAutoArgs<1> _args;
  _args[1] = Department /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email1Address(BSTR* Email1Address/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1Address"), DISPID(32899));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email1Address /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email1Address(void)
{
  BSTR Email1Address;
  this->get_Email1Address((BSTR*)&Email1Address);
  return Email1Address;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email1Address(BSTR Email1Address/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1Address"), DISPID(32899));
  TAutoArgs<1> _args;
  _args[1] = Email1Address /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email1AddressType(BSTR* Email1AddressType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1AddressType"), DISPID(32898));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email1AddressType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email1AddressType(void)
{
  BSTR Email1AddressType;
  this->get_Email1AddressType((BSTR*)&Email1AddressType);
  return Email1AddressType;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email1AddressType(BSTR Email1AddressType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1AddressType"), DISPID(32898));
  TAutoArgs<1> _args;
  _args[1] = Email1AddressType /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email1DisplayName(BSTR* Email1DisplayName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1DisplayName"), DISPID(32896));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email1DisplayName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email1DisplayName(void)
{
  BSTR Email1DisplayName;
  this->get_Email1DisplayName((BSTR*)&Email1DisplayName);
  return Email1DisplayName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email1EntryID(BSTR* Email1EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1EntryID"), DISPID(32901));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email1EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email1EntryID(void)
{
  BSTR Email1EntryID;
  this->get_Email1EntryID((BSTR*)&Email1EntryID);
  return Email1EntryID;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email2Address(BSTR* Email2Address/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2Address"), DISPID(32915));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email2Address /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email2Address(void)
{
  BSTR Email2Address;
  this->get_Email2Address((BSTR*)&Email2Address);
  return Email2Address;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email2Address(BSTR Email2Address/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2Address"), DISPID(32915));
  TAutoArgs<1> _args;
  _args[1] = Email2Address /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email2AddressType(BSTR* Email2AddressType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2AddressType"), DISPID(32914));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email2AddressType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email2AddressType(void)
{
  BSTR Email2AddressType;
  this->get_Email2AddressType((BSTR*)&Email2AddressType);
  return Email2AddressType;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email2AddressType(BSTR Email2AddressType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2AddressType"), DISPID(32914));
  TAutoArgs<1> _args;
  _args[1] = Email2AddressType /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email2DisplayName(BSTR* Email2DisplayName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2DisplayName"), DISPID(32912));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email2DisplayName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email2DisplayName(void)
{
  BSTR Email2DisplayName;
  this->get_Email2DisplayName((BSTR*)&Email2DisplayName);
  return Email2DisplayName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email2EntryID(BSTR* Email2EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2EntryID"), DISPID(32917));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email2EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email2EntryID(void)
{
  BSTR Email2EntryID;
  this->get_Email2EntryID((BSTR*)&Email2EntryID);
  return Email2EntryID;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email3Address(BSTR* Email3Address/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3Address"), DISPID(32931));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email3Address /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email3Address(void)
{
  BSTR Email3Address;
  this->get_Email3Address((BSTR*)&Email3Address);
  return Email3Address;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email3Address(BSTR Email3Address/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3Address"), DISPID(32931));
  TAutoArgs<1> _args;
  _args[1] = Email3Address /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email3AddressType(BSTR* Email3AddressType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3AddressType"), DISPID(32930));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email3AddressType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email3AddressType(void)
{
  BSTR Email3AddressType;
  this->get_Email3AddressType((BSTR*)&Email3AddressType);
  return Email3AddressType;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email3AddressType(BSTR Email3AddressType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3AddressType"), DISPID(32930));
  TAutoArgs<1> _args;
  _args[1] = Email3AddressType /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email3DisplayName(BSTR* Email3DisplayName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3DisplayName"), DISPID(32928));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email3DisplayName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email3DisplayName(void)
{
  BSTR Email3DisplayName;
  this->get_Email3DisplayName((BSTR*)&Email3DisplayName);
  return Email3DisplayName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Email3EntryID(BSTR* Email3EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3EntryID"), DISPID(32933));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Email3EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Email3EntryID(void)
{
  BSTR Email3EntryID;
  this->get_Email3EntryID((BSTR*)&Email3EntryID);
  return Email3EntryID;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FileAs(BSTR* FileAs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileAs"), DISPID(32773));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FileAs /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_FileAs(void)
{
  BSTR FileAs;
  this->get_FileAs((BSTR*)&FileAs);
  return FileAs;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_FileAs(BSTR FileAs/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileAs"), DISPID(32773));
  TAutoArgs<1> _args;
  _args[1] = FileAs /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FirstName(BSTR* FirstName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstName"), DISPID(14854));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FirstName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_FirstName(void)
{
  BSTR FirstName;
  this->get_FirstName((BSTR*)&FirstName);
  return FirstName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_FirstName(BSTR FirstName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstName"), DISPID(14854));
  TAutoArgs<1> _args;
  _args[1] = FirstName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FTPSite(BSTR* FTPSite/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FTPSite"), DISPID(14924));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FTPSite /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_FTPSite(void)
{
  BSTR FTPSite;
  this->get_FTPSite((BSTR*)&FTPSite);
  return FTPSite;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_FTPSite(BSTR FTPSite/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FTPSite"), DISPID(14924));
  TAutoArgs<1> _args;
  _args[1] = FTPSite /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FullName(BSTR* FullName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullName"), DISPID(12289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FullName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_FullName(void)
{
  BSTR FullName;
  this->get_FullName((BSTR*)&FullName);
  return FullName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_FullName(BSTR FullName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullName"), DISPID(12289));
  TAutoArgs<1> _args;
  _args[1] = FullName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_FullNameAndCompany(BSTR* FullNameAndCompany/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullNameAndCompany"), DISPID(32793));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(FullNameAndCompany /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_FullNameAndCompany(void)
{
  BSTR FullNameAndCompany;
  this->get_FullNameAndCompany((BSTR*)&FullNameAndCompany);
  return FullNameAndCompany;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Gender(Outlook_xp::OlGender* Gender/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Gender"), DISPID(14925));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Gender /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlGender __fastcall
_ContactItemDispT<T>::get_Gender(void)
{
  Outlook_xp::OlGender Gender;
  this->get_Gender((Outlook_xp::OlGender*)&Gender);
  return Gender;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Gender(Outlook_xp::OlGender Gender/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Gender"), DISPID(14925));
  TAutoArgs<1> _args;
  _args[1] = (int)Gender /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_GovernmentIDNumber(BSTR* GovernmentIDNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GovernmentIDNumber"), DISPID(14855));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(GovernmentIDNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_GovernmentIDNumber(void)
{
  BSTR GovernmentIDNumber;
  this->get_GovernmentIDNumber((BSTR*)&GovernmentIDNumber);
  return GovernmentIDNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_GovernmentIDNumber(BSTR GovernmentIDNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GovernmentIDNumber"), DISPID(14855));
  TAutoArgs<1> _args;
  _args[1] = GovernmentIDNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Hobby(BSTR* Hobby/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hobby"), DISPID(14915));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Hobby /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Hobby(void)
{
  BSTR Hobby;
  this->get_Hobby((BSTR*)&Hobby);
  return Hobby;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Hobby(BSTR Hobby/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hobby"), DISPID(14915));
  TAutoArgs<1> _args;
  _args[1] = Hobby /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Home2TelephoneNumber(BSTR* Home2TelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Home2TelephoneNumber"), DISPID(14895));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Home2TelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Home2TelephoneNumber(void)
{
  BSTR Home2TelephoneNumber;
  this->get_Home2TelephoneNumber((BSTR*)&Home2TelephoneNumber);
  return Home2TelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Home2TelephoneNumber(BSTR Home2TelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Home2TelephoneNumber"), DISPID(14895));
  TAutoArgs<1> _args;
  _args[1] = Home2TelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddress(BSTR* HomeAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddress"), DISPID(32794));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddress(void)
{
  BSTR HomeAddress;
  this->get_HomeAddress((BSTR*)&HomeAddress);
  return HomeAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddress(BSTR HomeAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddress"), DISPID(32794));
  TAutoArgs<1> _args;
  _args[1] = HomeAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressCity(BSTR* HomeAddressCity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressCity"), DISPID(14937));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressCity /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressCity(void)
{
  BSTR HomeAddressCity;
  this->get_HomeAddressCity((BSTR*)&HomeAddressCity);
  return HomeAddressCity;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressCity(BSTR HomeAddressCity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressCity"), DISPID(14937));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressCity /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressCountry(BSTR* HomeAddressCountry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressCountry"), DISPID(14938));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressCountry /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressCountry(void)
{
  BSTR HomeAddressCountry;
  this->get_HomeAddressCountry((BSTR*)&HomeAddressCountry);
  return HomeAddressCountry;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressCountry(BSTR HomeAddressCountry/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressCountry"), DISPID(14938));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressCountry /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressPostalCode(BSTR* HomeAddressPostalCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressPostalCode"), DISPID(14939));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressPostalCode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressPostalCode(void)
{
  BSTR HomeAddressPostalCode;
  this->get_HomeAddressPostalCode((BSTR*)&HomeAddressPostalCode);
  return HomeAddressPostalCode;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressPostalCode(BSTR HomeAddressPostalCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressPostalCode"), DISPID(14939));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressPostalCode /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressPostOfficeBox(BSTR* HomeAddressPostOfficeBox/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressPostOfficeBox"), DISPID(14942));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressPostOfficeBox /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressPostOfficeBox(void)
{
  BSTR HomeAddressPostOfficeBox;
  this->get_HomeAddressPostOfficeBox((BSTR*)&HomeAddressPostOfficeBox);
  return HomeAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressPostOfficeBox(BSTR HomeAddressPostOfficeBox/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressPostOfficeBox"), DISPID(14942));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressPostOfficeBox /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressState(BSTR* HomeAddressState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressState"), DISPID(14940));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressState /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressState(void)
{
  BSTR HomeAddressState;
  this->get_HomeAddressState((BSTR*)&HomeAddressState);
  return HomeAddressState;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressState(BSTR HomeAddressState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressState"), DISPID(14940));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressState /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeAddressStreet(BSTR* HomeAddressStreet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressStreet"), DISPID(14941));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeAddressStreet /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeAddressStreet(void)
{
  BSTR HomeAddressStreet;
  this->get_HomeAddressStreet((BSTR*)&HomeAddressStreet);
  return HomeAddressStreet;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeAddressStreet(BSTR HomeAddressStreet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeAddressStreet"), DISPID(14941));
  TAutoArgs<1> _args;
  _args[1] = HomeAddressStreet /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeFaxNumber(BSTR* HomeFaxNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeFaxNumber"), DISPID(14885));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeFaxNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeFaxNumber(void)
{
  BSTR HomeFaxNumber;
  this->get_HomeFaxNumber((BSTR*)&HomeFaxNumber);
  return HomeFaxNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeFaxNumber(BSTR HomeFaxNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeFaxNumber"), DISPID(14885));
  TAutoArgs<1> _args;
  _args[1] = HomeFaxNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_HomeTelephoneNumber(BSTR* HomeTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeTelephoneNumber"), DISPID(14857));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HomeTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_HomeTelephoneNumber(void)
{
  BSTR HomeTelephoneNumber;
  this->get_HomeTelephoneNumber((BSTR*)&HomeTelephoneNumber);
  return HomeTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_HomeTelephoneNumber(BSTR HomeTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HomeTelephoneNumber"), DISPID(14857));
  TAutoArgs<1> _args;
  _args[1] = HomeTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Initials(BSTR* Initials/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Initials"), DISPID(14858));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Initials /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Initials(void)
{
  BSTR Initials;
  this->get_Initials((BSTR*)&Initials);
  return Initials;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Initials(BSTR Initials/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Initials"), DISPID(14858));
  TAutoArgs<1> _args;
  _args[1] = Initials /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_InternetFreeBusyAddress(BSTR* InternetFreeBusyAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetFreeBusyAddress"), DISPID(32984));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InternetFreeBusyAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_InternetFreeBusyAddress(void)
{
  BSTR InternetFreeBusyAddress;
  this->get_InternetFreeBusyAddress((BSTR*)&InternetFreeBusyAddress);
  return InternetFreeBusyAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_InternetFreeBusyAddress(BSTR InternetFreeBusyAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetFreeBusyAddress"), DISPID(32984));
  TAutoArgs<1> _args;
  _args[1] = InternetFreeBusyAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ISDNNumber(BSTR* ISDNNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ISDNNumber"), DISPID(14893));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ISDNNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ISDNNumber(void)
{
  BSTR ISDNNumber;
  this->get_ISDNNumber((BSTR*)&ISDNNumber);
  return ISDNNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_ISDNNumber(BSTR ISDNNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ISDNNumber"), DISPID(14893));
  TAutoArgs<1> _args;
  _args[1] = ISDNNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_JobTitle(BSTR* JobTitle/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("JobTitle"), DISPID(14871));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(JobTitle /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_JobTitle(void)
{
  BSTR JobTitle;
  this->get_JobTitle((BSTR*)&JobTitle);
  return JobTitle;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_JobTitle(BSTR JobTitle/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("JobTitle"), DISPID(14871));
  TAutoArgs<1> _args;
  _args[1] = JobTitle /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Journal(VARIANT_BOOL* Journal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Journal"), DISPID(32805));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Journal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ContactItemDispT<T>::get_Journal(void)
{
  VARIANT_BOOL Journal;
  this->get_Journal((VARIANT_BOOL*)&Journal);
  return Journal;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Journal(VARIANT_BOOL Journal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Journal"), DISPID(32805));
  TAutoArgs<1> _args;
  _args[1] = Journal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Language(BSTR* Language/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Language"), DISPID(14860));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Language /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Language(void)
{
  BSTR Language;
  this->get_Language((BSTR*)&Language);
  return Language;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Language(BSTR Language/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Language"), DISPID(14860));
  TAutoArgs<1> _args;
  _args[1] = Language /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstAndSuffix(BSTR* LastFirstAndSuffix/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstAndSuffix"), DISPID(32822));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstAndSuffix /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstAndSuffix(void)
{
  BSTR LastFirstAndSuffix;
  this->get_LastFirstAndSuffix((BSTR*)&LastFirstAndSuffix);
  return LastFirstAndSuffix;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpace(BSTR* LastFirstNoSpace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstNoSpace"), DISPID(32816));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstNoSpace /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpace(void)
{
  BSTR LastFirstNoSpace;
  this->get_LastFirstNoSpace((BSTR*)&LastFirstNoSpace);
  return LastFirstNoSpace;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpaceCompany(BSTR* LastFirstNoSpaceCompany/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstNoSpaceCompany"), DISPID(32820));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstNoSpaceCompany /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpaceCompany(void)
{
  BSTR LastFirstNoSpaceCompany;
  this->get_LastFirstNoSpaceCompany((BSTR*)&LastFirstNoSpaceCompany);
  return LastFirstNoSpaceCompany;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstSpaceOnly(BSTR* LastFirstSpaceOnly/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstSpaceOnly"), DISPID(32817));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstSpaceOnly /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstSpaceOnly(void)
{
  BSTR LastFirstSpaceOnly;
  this->get_LastFirstSpaceOnly((BSTR*)&LastFirstSpaceOnly);
  return LastFirstSpaceOnly;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstSpaceOnlyCompany(BSTR* LastFirstSpaceOnlyCompany/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstSpaceOnlyCompany"), DISPID(32821));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstSpaceOnlyCompany /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstSpaceOnlyCompany(void)
{
  BSTR LastFirstSpaceOnlyCompany;
  this->get_LastFirstSpaceOnlyCompany((BSTR*)&LastFirstSpaceOnlyCompany);
  return LastFirstSpaceOnlyCompany;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastName(BSTR* LastName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastName"), DISPID(14865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastName(void)
{
  BSTR LastName;
  this->get_LastName((BSTR*)&LastName);
  return LastName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_LastName(BSTR LastName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastName"), DISPID(14865));
  TAutoArgs<1> _args;
  _args[1] = LastName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastNameAndFirstName(BSTR* LastNameAndFirstName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastNameAndFirstName"), DISPID(32791));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastNameAndFirstName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastNameAndFirstName(void)
{
  BSTR LastNameAndFirstName;
  this->get_LastNameAndFirstName((BSTR*)&LastNameAndFirstName);
  return LastNameAndFirstName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddress(BSTR* MailingAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddress"), DISPID(14869));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddress(void)
{
  BSTR MailingAddress;
  this->get_MailingAddress((BSTR*)&MailingAddress);
  return MailingAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddress(BSTR MailingAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddress"), DISPID(14869));
  TAutoArgs<1> _args;
  _args[1] = MailingAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressCity(BSTR* MailingAddressCity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressCity"), DISPID(14887));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressCity /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressCity(void)
{
  BSTR MailingAddressCity;
  this->get_MailingAddressCity((BSTR*)&MailingAddressCity);
  return MailingAddressCity;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressCity(BSTR MailingAddressCity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressCity"), DISPID(14887));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressCity /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressCountry(BSTR* MailingAddressCountry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressCountry"), DISPID(14886));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressCountry /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressCountry(void)
{
  BSTR MailingAddressCountry;
  this->get_MailingAddressCountry((BSTR*)&MailingAddressCountry);
  return MailingAddressCountry;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressCountry(BSTR MailingAddressCountry/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressCountry"), DISPID(14886));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressCountry /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressPostalCode(BSTR* MailingAddressPostalCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressPostalCode"), DISPID(14890));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressPostalCode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressPostalCode(void)
{
  BSTR MailingAddressPostalCode;
  this->get_MailingAddressPostalCode((BSTR*)&MailingAddressPostalCode);
  return MailingAddressPostalCode;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressPostalCode(BSTR MailingAddressPostalCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressPostalCode"), DISPID(14890));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressPostalCode /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressPostOfficeBox(BSTR* MailingAddressPostOfficeBox/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressPostOfficeBox"), DISPID(14891));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressPostOfficeBox /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressPostOfficeBox(void)
{
  BSTR MailingAddressPostOfficeBox;
  this->get_MailingAddressPostOfficeBox((BSTR*)&MailingAddressPostOfficeBox);
  return MailingAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressPostOfficeBox(BSTR MailingAddressPostOfficeBox/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressPostOfficeBox"), DISPID(14891));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressPostOfficeBox /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressState(BSTR* MailingAddressState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressState"), DISPID(14888));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressState /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressState(void)
{
  BSTR MailingAddressState;
  this->get_MailingAddressState((BSTR*)&MailingAddressState);
  return MailingAddressState;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressState(BSTR MailingAddressState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressState"), DISPID(14888));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressState /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MailingAddressStreet(BSTR* MailingAddressStreet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressStreet"), DISPID(14889));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MailingAddressStreet /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MailingAddressStreet(void)
{
  BSTR MailingAddressStreet;
  this->get_MailingAddressStreet((BSTR*)&MailingAddressStreet);
  return MailingAddressStreet;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MailingAddressStreet(BSTR MailingAddressStreet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MailingAddressStreet"), DISPID(14889));
  TAutoArgs<1> _args;
  _args[1] = MailingAddressStreet /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ManagerName(BSTR* ManagerName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManagerName"), DISPID(14926));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ManagerName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ManagerName(void)
{
  BSTR ManagerName;
  this->get_ManagerName((BSTR*)&ManagerName);
  return ManagerName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_ManagerName(BSTR ManagerName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManagerName"), DISPID(14926));
  TAutoArgs<1> _args;
  _args[1] = ManagerName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MiddleName(BSTR* MiddleName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MiddleName"), DISPID(14916));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MiddleName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MiddleName(void)
{
  BSTR MiddleName;
  this->get_MiddleName((BSTR*)&MiddleName);
  return MiddleName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MiddleName(BSTR MiddleName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MiddleName"), DISPID(14916));
  TAutoArgs<1> _args;
  _args[1] = MiddleName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MobileTelephoneNumber(BSTR* MobileTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MobileTelephoneNumber"), DISPID(14876));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MobileTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_MobileTelephoneNumber(void)
{
  BSTR MobileTelephoneNumber;
  this->get_MobileTelephoneNumber((BSTR*)&MobileTelephoneNumber);
  return MobileTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MobileTelephoneNumber(BSTR MobileTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MobileTelephoneNumber"), DISPID(14876));
  TAutoArgs<1> _args;
  _args[1] = MobileTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_NetMeetingAlias(BSTR* NetMeetingAlias/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingAlias"), DISPID(32863));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingAlias /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_NetMeetingAlias(void)
{
  BSTR NetMeetingAlias;
  this->get_NetMeetingAlias((BSTR*)&NetMeetingAlias);
  return NetMeetingAlias;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_NetMeetingAlias(BSTR NetMeetingAlias/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingAlias"), DISPID(32863));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingAlias /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_NetMeetingServer(BSTR* NetMeetingServer/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingServer"), DISPID(32864));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NetMeetingServer /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_NetMeetingServer(void)
{
  BSTR NetMeetingServer;
  this->get_NetMeetingServer((BSTR*)&NetMeetingServer);
  return NetMeetingServer;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_NetMeetingServer(BSTR NetMeetingServer/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NetMeetingServer"), DISPID(32864));
  TAutoArgs<1> _args;
  _args[1] = NetMeetingServer /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_NickName(BSTR* NickName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NickName"), DISPID(14927));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NickName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_NickName(void)
{
  BSTR NickName;
  this->get_NickName((BSTR*)&NickName);
  return NickName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_NickName(BSTR NickName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NickName"), DISPID(14927));
  TAutoArgs<1> _args;
  _args[1] = NickName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OfficeLocation(BSTR* OfficeLocation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OfficeLocation"), DISPID(14873));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OfficeLocation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OfficeLocation(void)
{
  BSTR OfficeLocation;
  this->get_OfficeLocation((BSTR*)&OfficeLocation);
  return OfficeLocation;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OfficeLocation(BSTR OfficeLocation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OfficeLocation"), DISPID(14873));
  TAutoArgs<1> _args;
  _args[1] = OfficeLocation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OrganizationalIDNumber(BSTR* OrganizationalIDNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OrganizationalIDNumber"), DISPID(14864));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OrganizationalIDNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OrganizationalIDNumber(void)
{
  BSTR OrganizationalIDNumber;
  this->get_OrganizationalIDNumber((BSTR*)&OrganizationalIDNumber);
  return OrganizationalIDNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OrganizationalIDNumber(BSTR OrganizationalIDNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OrganizationalIDNumber"), DISPID(14864));
  TAutoArgs<1> _args;
  _args[1] = OrganizationalIDNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddress(BSTR* OtherAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddress"), DISPID(32796));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddress(void)
{
  BSTR OtherAddress;
  this->get_OtherAddress((BSTR*)&OtherAddress);
  return OtherAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddress(BSTR OtherAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddress"), DISPID(32796));
  TAutoArgs<1> _args;
  _args[1] = OtherAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressCity(BSTR* OtherAddressCity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressCity"), DISPID(14943));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressCity /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressCity(void)
{
  BSTR OtherAddressCity;
  this->get_OtherAddressCity((BSTR*)&OtherAddressCity);
  return OtherAddressCity;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressCity(BSTR OtherAddressCity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressCity"), DISPID(14943));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressCity /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressCountry(BSTR* OtherAddressCountry/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressCountry"), DISPID(14944));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressCountry /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressCountry(void)
{
  BSTR OtherAddressCountry;
  this->get_OtherAddressCountry((BSTR*)&OtherAddressCountry);
  return OtherAddressCountry;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressCountry(BSTR OtherAddressCountry/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressCountry"), DISPID(14944));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressCountry /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressPostalCode(BSTR* OtherAddressPostalCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressPostalCode"), DISPID(14945));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressPostalCode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressPostalCode(void)
{
  BSTR OtherAddressPostalCode;
  this->get_OtherAddressPostalCode((BSTR*)&OtherAddressPostalCode);
  return OtherAddressPostalCode;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressPostalCode(BSTR OtherAddressPostalCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressPostalCode"), DISPID(14945));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressPostalCode /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressPostOfficeBox(BSTR* OtherAddressPostOfficeBox/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressPostOfficeBox"), DISPID(14948));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressPostOfficeBox /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressPostOfficeBox(void)
{
  BSTR OtherAddressPostOfficeBox;
  this->get_OtherAddressPostOfficeBox((BSTR*)&OtherAddressPostOfficeBox);
  return OtherAddressPostOfficeBox;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressPostOfficeBox(BSTR OtherAddressPostOfficeBox/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressPostOfficeBox"), DISPID(14948));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressPostOfficeBox /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressState(BSTR* OtherAddressState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressState"), DISPID(14946));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressState /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressState(void)
{
  BSTR OtherAddressState;
  this->get_OtherAddressState((BSTR*)&OtherAddressState);
  return OtherAddressState;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressState(BSTR OtherAddressState/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressState"), DISPID(14946));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressState /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherAddressStreet(BSTR* OtherAddressStreet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressStreet"), DISPID(14947));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherAddressStreet /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherAddressStreet(void)
{
  BSTR OtherAddressStreet;
  this->get_OtherAddressStreet((BSTR*)&OtherAddressStreet);
  return OtherAddressStreet;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherAddressStreet(BSTR OtherAddressStreet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherAddressStreet"), DISPID(14947));
  TAutoArgs<1> _args;
  _args[1] = OtherAddressStreet /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherFaxNumber(BSTR* OtherFaxNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherFaxNumber"), DISPID(14883));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherFaxNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherFaxNumber(void)
{
  BSTR OtherFaxNumber;
  this->get_OtherFaxNumber((BSTR*)&OtherFaxNumber);
  return OtherFaxNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherFaxNumber(BSTR OtherFaxNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherFaxNumber"), DISPID(14883));
  TAutoArgs<1> _args;
  _args[1] = OtherFaxNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_OtherTelephoneNumber(BSTR* OtherTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherTelephoneNumber"), DISPID(14879));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OtherTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_OtherTelephoneNumber(void)
{
  BSTR OtherTelephoneNumber;
  this->get_OtherTelephoneNumber((BSTR*)&OtherTelephoneNumber);
  return OtherTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_OtherTelephoneNumber(BSTR OtherTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OtherTelephoneNumber"), DISPID(14879));
  TAutoArgs<1> _args;
  _args[1] = OtherTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_PagerNumber(BSTR* PagerNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PagerNumber"), DISPID(14881));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PagerNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_PagerNumber(void)
{
  BSTR PagerNumber;
  this->get_PagerNumber((BSTR*)&PagerNumber);
  return PagerNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_PagerNumber(BSTR PagerNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PagerNumber"), DISPID(14881));
  TAutoArgs<1> _args;
  _args[1] = PagerNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_PersonalHomePage(BSTR* PersonalHomePage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PersonalHomePage"), DISPID(14928));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PersonalHomePage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_PersonalHomePage(void)
{
  BSTR PersonalHomePage;
  this->get_PersonalHomePage((BSTR*)&PersonalHomePage);
  return PersonalHomePage;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_PersonalHomePage(BSTR PersonalHomePage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PersonalHomePage"), DISPID(14928));
  TAutoArgs<1> _args;
  _args[1] = PersonalHomePage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_PrimaryTelephoneNumber(BSTR* PrimaryTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrimaryTelephoneNumber"), DISPID(14874));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PrimaryTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_PrimaryTelephoneNumber(void)
{
  BSTR PrimaryTelephoneNumber;
  this->get_PrimaryTelephoneNumber((BSTR*)&PrimaryTelephoneNumber);
  return PrimaryTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_PrimaryTelephoneNumber(BSTR PrimaryTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrimaryTelephoneNumber"), DISPID(14874));
  TAutoArgs<1> _args;
  _args[1] = PrimaryTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Profession(BSTR* Profession/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Profession"), DISPID(14918));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Profession /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Profession(void)
{
  BSTR Profession;
  this->get_Profession((BSTR*)&Profession);
  return Profession;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Profession(BSTR Profession/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Profession"), DISPID(14918));
  TAutoArgs<1> _args;
  _args[1] = Profession /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_RadioTelephoneNumber(BSTR* RadioTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadioTelephoneNumber"), DISPID(14877));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RadioTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_RadioTelephoneNumber(void)
{
  BSTR RadioTelephoneNumber;
  this->get_RadioTelephoneNumber((BSTR*)&RadioTelephoneNumber);
  return RadioTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_RadioTelephoneNumber(BSTR RadioTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadioTelephoneNumber"), DISPID(14877));
  TAutoArgs<1> _args;
  _args[1] = RadioTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ReferredBy(BSTR* ReferredBy/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReferredBy"), DISPID(14919));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReferredBy /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_ReferredBy(void)
{
  BSTR ReferredBy;
  this->get_ReferredBy((BSTR*)&ReferredBy);
  return ReferredBy;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_ReferredBy(BSTR ReferredBy/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReferredBy"), DISPID(14919));
  TAutoArgs<1> _args;
  _args[1] = ReferredBy /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_SelectedMailingAddress(Outlook_xp::OlMailingAddress* SelectedMailingAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectedMailingAddress"), DISPID(32802));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)SelectedMailingAddress /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlMailingAddress __fastcall
_ContactItemDispT<T>::get_SelectedMailingAddress(void)
{
  Outlook_xp::OlMailingAddress SelectedMailingAddress;
  this->get_SelectedMailingAddress((Outlook_xp::OlMailingAddress*)&SelectedMailingAddress);
  return SelectedMailingAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_SelectedMailingAddress(Outlook_xp::OlMailingAddress SelectedMailingAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectedMailingAddress"), DISPID(32802));
  TAutoArgs<1> _args;
  _args[1] = (int)SelectedMailingAddress /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Spouse(BSTR* Spouse/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Spouse"), DISPID(14920));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Spouse /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Spouse(void)
{
  BSTR Spouse;
  this->get_Spouse((BSTR*)&Spouse);
  return Spouse;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Spouse(BSTR Spouse/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Spouse"), DISPID(14920));
  TAutoArgs<1> _args;
  _args[1] = Spouse /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Suffix(BSTR* Suffix/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Suffix"), DISPID(14853));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Suffix /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Suffix(void)
{
  BSTR Suffix;
  this->get_Suffix((BSTR*)&Suffix);
  return Suffix;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Suffix(BSTR Suffix/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Suffix"), DISPID(14853));
  TAutoArgs<1> _args;
  _args[1] = Suffix /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_TelexNumber(BSTR* TelexNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TelexNumber"), DISPID(14892));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TelexNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_TelexNumber(void)
{
  BSTR TelexNumber;
  this->get_TelexNumber((BSTR*)&TelexNumber);
  return TelexNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_TelexNumber(BSTR TelexNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TelexNumber"), DISPID(14892));
  TAutoArgs<1> _args;
  _args[1] = TelexNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Title(BSTR* Title/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Title"), DISPID(14917));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Title /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_Title(void)
{
  BSTR Title;
  this->get_Title((BSTR*)&Title);
  return Title;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Title(BSTR Title/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Title"), DISPID(14917));
  TAutoArgs<1> _args;
  _args[1] = Title /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_TTYTDDTelephoneNumber(BSTR* TTYTDDTelephoneNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TTYTDDTelephoneNumber"), DISPID(14923));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TTYTDDTelephoneNumber /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_TTYTDDTelephoneNumber(void)
{
  BSTR TTYTDDTelephoneNumber;
  this->get_TTYTDDTelephoneNumber((BSTR*)&TTYTDDTelephoneNumber);
  return TTYTDDTelephoneNumber;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_TTYTDDTelephoneNumber(BSTR TTYTDDTelephoneNumber/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TTYTDDTelephoneNumber"), DISPID(14923));
  TAutoArgs<1> _args;
  _args[1] = TTYTDDTelephoneNumber /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_User1(BSTR* User1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("User1"), DISPID(32847));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(User1 /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_User1(void)
{
  BSTR User1;
  this->get_User1((BSTR*)&User1);
  return User1;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_User1(BSTR User1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("User1"), DISPID(32847));
  TAutoArgs<1> _args;
  _args[1] = User1 /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_User2(BSTR* User2/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("User2"), DISPID(32848));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(User2 /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_User2(void)
{
  BSTR User2;
  this->get_User2((BSTR*)&User2);
  return User2;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_User2(BSTR User2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("User2"), DISPID(32848));
  TAutoArgs<1> _args;
  _args[1] = User2 /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_User3(BSTR* User3/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("User3"), DISPID(32849));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(User3 /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_User3(void)
{
  BSTR User3;
  this->get_User3((BSTR*)&User3);
  return User3;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_User3(BSTR User3/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("User3"), DISPID(32849));
  TAutoArgs<1> _args;
  _args[1] = User3 /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_User4(BSTR* User4/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("User4"), DISPID(32850));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(User4 /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_User4(void)
{
  BSTR User4;
  this->get_User4((BSTR*)&User4);
  return User4;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_User4(BSTR User4/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("User4"), DISPID(32850));
  TAutoArgs<1> _args;
  _args[1] = User4 /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_UserCertificate(BSTR* UserCertificate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserCertificate"), DISPID(32790));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UserCertificate /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_UserCertificate(void)
{
  BSTR UserCertificate;
  this->get_UserCertificate((BSTR*)&UserCertificate);
  return UserCertificate;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_UserCertificate(BSTR UserCertificate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserCertificate"), DISPID(32790));
  TAutoArgs<1> _args;
  _args[1] = UserCertificate /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_WebPage(BSTR* WebPage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebPage"), DISPID(32811));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(WebPage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_WebPage(void)
{
  BSTR WebPage;
  this->get_WebPage((BSTR*)&WebPage);
  return WebPage;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_WebPage(BSTR WebPage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WebPage"), DISPID(32811));
  TAutoArgs<1> _args;
  _args[1] = WebPage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_YomiCompanyName(BSTR* YomiCompanyName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiCompanyName"), DISPID(32814));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(YomiCompanyName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_YomiCompanyName(void)
{
  BSTR YomiCompanyName;
  this->get_YomiCompanyName((BSTR*)&YomiCompanyName);
  return YomiCompanyName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_YomiCompanyName(BSTR YomiCompanyName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiCompanyName"), DISPID(32814));
  TAutoArgs<1> _args;
  _args[1] = YomiCompanyName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_YomiFirstName(BSTR* YomiFirstName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiFirstName"), DISPID(32812));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(YomiFirstName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_YomiFirstName(void)
{
  BSTR YomiFirstName;
  this->get_YomiFirstName((BSTR*)&YomiFirstName);
  return YomiFirstName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_YomiFirstName(BSTR YomiFirstName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiFirstName"), DISPID(32812));
  TAutoArgs<1> _args;
  _args[1] = YomiFirstName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_YomiLastName(BSTR* YomiLastName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiLastName"), DISPID(32813));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(YomiLastName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_YomiLastName(void)
{
  BSTR YomiLastName;
  this->get_YomiLastName((BSTR*)&YomiLastName);
  return YomiLastName;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_YomiLastName(BSTR YomiLastName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YomiLastName"), DISPID(32813));
  TAutoArgs<1> _args;
  _args[1] = YomiLastName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::ForwardAsVcard(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ForwardAsVcard"), DISPID(63649));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_ContactItemDispT<T>::ForwardAsVcard(void)
{
  Outlook_xp::MailItem* Item;
  this->ForwardAsVcard((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_ContactItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_ContactItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpaceAndSuffix(BSTR* LastFirstNoSpaceAndSuffix/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastFirstNoSpaceAndSuffix"), DISPID(32824));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastFirstNoSpaceAndSuffix /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_LastFirstNoSpaceAndSuffix(void)
{
  BSTR LastFirstNoSpaceAndSuffix;
  this->get_LastFirstNoSpaceAndSuffix((BSTR*)&LastFirstNoSpaceAndSuffix);
  return LastFirstNoSpaceAndSuffix;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_ContactItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_IMAddress(BSTR* IMAddress/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IMAddress"), DISPID(32866));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IMAddress /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ContactItemDispT<T>::get_IMAddress(void)
{
  BSTR IMAddress;
  this->get_IMAddress((BSTR*)&IMAddress);
  return IMAddress;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_IMAddress(BSTR IMAddress/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IMAddress"), DISPID(32866));
  TAutoArgs<1> _args;
  _args[1] = IMAddress /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_ContactItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email1DisplayName(BSTR Email1DisplayName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email1DisplayName"), DISPID(32896));
  TAutoArgs<1> _args;
  _args[1] = Email1DisplayName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email2DisplayName(BSTR Email2DisplayName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email2DisplayName"), DISPID(32912));
  TAutoArgs<1> _args;
  _args[1] = Email2DisplayName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::set_Email3DisplayName(BSTR Email3DisplayName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Email3DisplayName"), DISPID(32928));
  TAutoArgs<1> _args;
  _args[1] = Email3DisplayName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ContactItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ContactItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_DistListItem
// Interface: _DistListItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_DistListItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_DistListItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_DistListItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_DistListItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_DistListItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_DistListItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_DistListItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_DistListItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_DistListItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_DistListItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_DistListItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_DistListItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DistListItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_DistListItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DistListItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_DistListItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_DistListItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DistListItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_DistListItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_DistListItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                            LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_DistListItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_DLName(BSTR* DLName/*[out,retval]*/)
{
  return (*this)->get_DLName(DLName);
}

template <class T> BSTR __fastcall
TCOM_DistListItemT<T>::get_DLName(void)
{
  BSTR DLName = 0;
  OLECHECK(this->get_DLName((BSTR*)&DLName));
  return DLName;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_DLName(BSTR DLName/*[in]*/)
{
  return (*this)->set_DLName(DLName);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_MemberCount(long* MemberCount/*[out,retval]*/)
{
  return (*this)->get_MemberCount(MemberCount);
}

template <class T> long __fastcall
TCOM_DistListItemT<T>::get_MemberCount(void)
{
  long MemberCount;
  OLECHECK(this->get_MemberCount((long*)&MemberCount));
  return MemberCount;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_CheckSum(long* CheckSum/*[out,retval]*/)
{
  return (*this)->get_CheckSum(CheckSum);
}

template <class T> long __fastcall
TCOM_DistListItemT<T>::get_CheckSum(void)
{
  long CheckSum;
  OLECHECK(this->get_CheckSum((long*)&CheckSum));
  return CheckSum;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Members(VARIANT* Members/*[out,retval]*/)
{
  return (*this)->get_Members(Members);
}

template <class T> VARIANT __fastcall
TCOM_DistListItemT<T>::get_Members(void)
{
  VARIANT Members;
  OLECHECK(this->get_Members((VARIANT*)&Members));
  return Members;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_Members(VARIANT Members/*[in]*/)
{
  return (*this)->set_Members(Members);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_OneOffMembers(VARIANT* OneOffMembers/*[out,retval]*/)
{
  return (*this)->get_OneOffMembers(OneOffMembers);
}

template <class T> VARIANT __fastcall
TCOM_DistListItemT<T>::get_OneOffMembers(void)
{
  VARIANT OneOffMembers;
  OLECHECK(this->get_OneOffMembers((VARIANT*)&OneOffMembers));
  return OneOffMembers;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_OneOffMembers(VARIANT OneOffMembers/*[in]*/)
{
  return (*this)->set_OneOffMembers(OneOffMembers);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_DistListItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::AddMembers(Outlook_xp::Recipients* Recipients/*[in]*/)
{
  return (*this)->AddMembers(Recipients);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::RemoveMembers(Outlook_xp::Recipients* Recipients/*[in]*/)
{
  return (*this)->RemoveMembers(Recipients);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::GetMember(long Index/*[in]*/, 
                                 Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  return (*this)->GetMember(Index, Recipient);
}

template <class T> Outlook_xp::Recipient* __fastcall
TCOM_DistListItemT<T>::GetMember(long Index/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  OLECHECK(this->GetMember(Index/*[in]*/, (Outlook_xp::Recipient**)&Recipient));
  return Recipient;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_DistListItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::AddMember(Outlook_xp::Recipient* Recipient/*[in]*/)
{
  return (*this)->AddMember(Recipient);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::RemoveMember(Outlook_xp::Recipient* Recipient/*[in]*/)
{
  return (*this)->RemoveMember(Recipient);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_DistListItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_DistListItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_DistListItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DistListItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _DistListItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063081-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_DistListItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_DistListItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_DistListItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DistListItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_DistListItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_DistListItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_DistListItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_DistListItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_DistListItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_DistListItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_DistListItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_DistListItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DistListItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DistListItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DistListItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_DistListItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DistListItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DistListItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_DistListItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DistListItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                            LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DistListItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_DLName(BSTR* DLName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DLName"), DISPID(32851));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DLName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DistListItemDispT<T>::get_DLName(void)
{
  BSTR DLName;
  this->get_DLName((BSTR*)&DLName);
  return DLName;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_DLName(BSTR DLName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DLName"), DISPID(32851));
  TAutoArgs<1> _args;
  _args[1] = DLName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_MemberCount(long* MemberCount/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MemberCount"), DISPID(32843));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MemberCount /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DistListItemDispT<T>::get_MemberCount(void)
{
  long MemberCount;
  this->get_MemberCount((long*)&MemberCount);
  return MemberCount;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_CheckSum(long* CheckSum/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckSum"), DISPID(32844));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CheckSum /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DistListItemDispT<T>::get_CheckSum(void)
{
  long CheckSum;
  this->get_CheckSum((long*)&CheckSum);
  return CheckSum;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Members(VARIANT* Members/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Members"), DISPID(32853));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Members /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
_DistListItemDispT<T>::get_Members(void)
{
  VARIANT Members;
  this->get_Members((VARIANT*)&Members);
  return Members;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_Members(VARIANT Members/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Members"), DISPID(32853));
  TAutoArgs<1> _args;
  _args[1] = Members /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_OneOffMembers(VARIANT* OneOffMembers/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneOffMembers"), DISPID(32852));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OneOffMembers /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
_DistListItemDispT<T>::get_OneOffMembers(void)
{
  VARIANT OneOffMembers;
  this->get_OneOffMembers((VARIANT*)&OneOffMembers);
  return OneOffMembers;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_OneOffMembers(VARIANT OneOffMembers/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneOffMembers"), DISPID(32852));
  TAutoArgs<1> _args;
  _args[1] = OneOffMembers /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_DistListItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::AddMembers(Outlook_xp::Recipients* Recipients/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddMembers"), DISPID(63744));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Recipients*)Recipients /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::RemoveMembers(Outlook_xp::Recipients* Recipients/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveMembers"), DISPID(63745));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Recipients*)Recipients /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::GetMember(long Index/*[in]*/, 
                                 Outlook_xp::Recipient** Recipient/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetMember"), DISPID(63749));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipient**)Recipient /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::Recipient* __fastcall
_DistListItemDispT<T>::GetMember(long Index/*[in]*/)
{
  Outlook_xp::Recipient* Recipient;
  this->GetMember(Index, (Outlook_xp::Recipient**)&Recipient);
  return Recipient;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_DistListItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::AddMember(Outlook_xp::Recipient* Recipient/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddMember"), DISPID(64140));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Recipient*)Recipient /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::RemoveMember(Outlook_xp::Recipient* Recipient/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveMember"), DISPID(64141));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Recipient*)Recipient /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_DistListItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_DistListItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DistListItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DistListItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_DocumentItem
// Interface: _DocumentItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_DocumentItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_DocumentItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_DocumentItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_DocumentItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_DocumentItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_DocumentItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_DocumentItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_DocumentItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_DocumentItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_DocumentItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_DocumentItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_DocumentItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DocumentItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_DocumentItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DocumentItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_DocumentItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_DocumentItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_DocumentItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DocumentItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_DocumentItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_DocumentItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                            LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_DocumentItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_DocumentItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_DocumentItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_DocumentItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_DocumentItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_DocumentItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_DocumentItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _DocumentItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063020-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_DocumentItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_DocumentItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_DocumentItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DocumentItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_DocumentItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_DocumentItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_DocumentItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_DocumentItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_DocumentItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_DocumentItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_DocumentItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_DocumentItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DocumentItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DocumentItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DocumentItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_DocumentItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_DocumentItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_DocumentItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DocumentItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_DocumentItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DocumentItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                            LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_DocumentItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_DocumentItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_DocumentItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_DocumentItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_DocumentItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_DocumentItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_DocumentItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  ExplorersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063078-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ExplorersEventsDispT<T>::NewExplorer(Outlook_xp::_Explorer* Explorer/*[in]*/)
{
  _TDispID _dispid(/* NewExplorer */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Explorer*)Explorer /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  FoldersEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063076-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
FoldersEventsDispT<T>::FolderAdd(Outlook_xp::MAPIFolder* Folder/*[in]*/)
{
  _TDispID _dispid(/* FolderAdd */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
FoldersEventsDispT<T>::FolderChange(Outlook_xp::MAPIFolder* Folder/*[in]*/)
{
  _TDispID _dispid(/* FolderChange */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
FoldersEventsDispT<T>::FolderRemove()
{
  _TDispID _dispid(/* FolderRemove */ DISPID(61443));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  InspectorsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063079-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
InspectorsEventsDispT<T>::NewInspector(Outlook_xp::_Inspector* Inspector/*[in]*/)
{
  _TDispID _dispid(/* NewInspector */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Inspector*)Inspector /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ItemsEvents
// Flags:     (4096) Dispatchable
// GUID:      {00063077-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ItemsEventsDispT<T>::ItemAdd(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(/* ItemAdd */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemsEventsDispT<T>::ItemChange(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(/* ItemChange */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ItemsEventsDispT<T>::ItemRemove()
{
  _TDispID _dispid(/* ItemRemove */ DISPID(61443));
  OleProcedure(_dispid);
}

// *********************************************************************//
// SmartIntf: TCOM_JournalItem
// Interface: _JournalItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_JournalItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_JournalItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_JournalItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_JournalItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_JournalItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_JournalItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_JournalItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_JournalItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_JournalItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_JournalItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_JournalItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_JournalItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_JournalItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_JournalItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_JournalItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_JournalItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_JournalItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_JournalItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_ContactNames(BSTR* ContactNames/*[out,retval]*/)
{
  return (*this)->get_ContactNames(ContactNames);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_ContactNames(void)
{
  BSTR ContactNames = 0;
  OLECHECK(this->get_ContactNames((BSTR*)&ContactNames));
  return ContactNames;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_ContactNames(BSTR ContactNames/*[in]*/)
{
  return (*this)->set_ContactNames(ContactNames);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_DocPosted(VARIANT_BOOL* DocPosted/*[out,retval]*/)
{
  return (*this)->get_DocPosted(DocPosted);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_DocPosted(void)
{
  VARIANT_BOOL DocPosted;
  OLECHECK(this->get_DocPosted((VARIANT_BOOL*)&DocPosted));
  return DocPosted;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_DocPosted(VARIANT_BOOL DocPosted/*[in]*/)
{
  return (*this)->set_DocPosted(DocPosted);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_DocPrinted(VARIANT_BOOL* DocPrinted/*[out,retval]*/)
{
  return (*this)->get_DocPrinted(DocPrinted);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_DocPrinted(void)
{
  VARIANT_BOOL DocPrinted;
  OLECHECK(this->get_DocPrinted((VARIANT_BOOL*)&DocPrinted));
  return DocPrinted;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_DocPrinted(VARIANT_BOOL DocPrinted/*[in]*/)
{
  return (*this)->set_DocPrinted(DocPrinted);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_DocRouted(VARIANT_BOOL* DocRouted/*[out,retval]*/)
{
  return (*this)->get_DocRouted(DocRouted);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_DocRouted(void)
{
  VARIANT_BOOL DocRouted;
  OLECHECK(this->get_DocRouted((VARIANT_BOOL*)&DocRouted));
  return DocRouted;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_DocRouted(VARIANT_BOOL DocRouted/*[in]*/)
{
  return (*this)->set_DocRouted(DocRouted);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_DocSaved(VARIANT_BOOL* DocSaved/*[out,retval]*/)
{
  return (*this)->get_DocSaved(DocSaved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_DocSaved(void)
{
  VARIANT_BOOL DocSaved;
  OLECHECK(this->get_DocSaved((VARIANT_BOOL*)&DocSaved));
  return DocSaved;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_DocSaved(VARIANT_BOOL DocSaved/*[in]*/)
{
  return (*this)->set_DocSaved(DocSaved);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Duration(long* Duration/*[out,retval]*/)
{
  return (*this)->get_Duration(Duration);
}

template <class T> long __fastcall
TCOM_JournalItemT<T>::get_Duration(void)
{
  long Duration;
  OLECHECK(this->get_Duration((long*)&Duration));
  return Duration;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Duration(long Duration/*[in]*/)
{
  return (*this)->set_Duration(Duration);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_End(DATE* End/*[out,retval]*/)
{
  return (*this)->get_End(End);
}

template <class T> DATE __fastcall
TCOM_JournalItemT<T>::get_End(void)
{
  DATE End;
  OLECHECK(this->get_End((DATE*)&End));
  return End;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_End(DATE End/*[in]*/)
{
  return (*this)->set_End(End);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Type(BSTR* Type/*[out,retval]*/)
{
  return (*this)->get_Type(Type);
}

template <class T> BSTR __fastcall
TCOM_JournalItemT<T>::get_Type(void)
{
  BSTR Type = 0;
  OLECHECK(this->get_Type((BSTR*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Type(BSTR Type/*[in]*/)
{
  return (*this)->set_Type(Type);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  return (*this)->get_Recipients(Recipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_JournalItemT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  OLECHECK(this->get_Recipients((Outlook_xp::RecipientsPtr*)&Recipients));
  return Recipients;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Start(DATE* Start/*[out,retval]*/)
{
  return (*this)->get_Start(Start);
}

template <class T> DATE __fastcall
TCOM_JournalItemT<T>::get_Start(void)
{
  DATE Start;
  OLECHECK(this->get_Start((DATE*)&Start));
  return Start;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_Start(DATE Start/*[in]*/)
{
  return (*this)->set_Start(Start);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Forward(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_JournalItemT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Reply(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_JournalItemT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->ReplyAll(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_JournalItemT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->ReplyAll((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::StartTimer(void)
{
  return (*this)->StartTimer();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::StopTimer(void)
{
  return (*this)->StopTimer();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_JournalItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_JournalItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_JournalItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_JournalItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_JournalItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_JournalItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _JournalItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063022-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_JournalItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_JournalItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_JournalItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_JournalItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_JournalItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_JournalItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_JournalItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_JournalItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_JournalItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_JournalItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_JournalItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_JournalItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_JournalItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_JournalItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_JournalItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_JournalItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_JournalItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                           LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_JournalItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_ContactNames(BSTR* ContactNames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactNames"), DISPID(3588));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ContactNames /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_ContactNames(void)
{
  BSTR ContactNames;
  this->get_ContactNames((BSTR*)&ContactNames);
  return ContactNames;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_ContactNames(BSTR ContactNames/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactNames"), DISPID(3588));
  TAutoArgs<1> _args;
  _args[1] = ContactNames /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_DocPosted(VARIANT_BOOL* DocPosted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocPosted"), DISPID(34577));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocPosted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_DocPosted(void)
{
  VARIANT_BOOL DocPosted;
  this->get_DocPosted((VARIANT_BOOL*)&DocPosted);
  return DocPosted;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_DocPosted(VARIANT_BOOL DocPosted/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocPosted"), DISPID(34577));
  TAutoArgs<1> _args;
  _args[1] = DocPosted /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_DocPrinted(VARIANT_BOOL* DocPrinted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocPrinted"), DISPID(34574));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocPrinted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_DocPrinted(void)
{
  VARIANT_BOOL DocPrinted;
  this->get_DocPrinted((VARIANT_BOOL*)&DocPrinted);
  return DocPrinted;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_DocPrinted(VARIANT_BOOL DocPrinted/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocPrinted"), DISPID(34574));
  TAutoArgs<1> _args;
  _args[1] = DocPrinted /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_DocRouted(VARIANT_BOOL* DocRouted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocRouted"), DISPID(34576));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocRouted /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_DocRouted(void)
{
  VARIANT_BOOL DocRouted;
  this->get_DocRouted((VARIANT_BOOL*)&DocRouted);
  return DocRouted;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_DocRouted(VARIANT_BOOL DocRouted/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocRouted"), DISPID(34576));
  TAutoArgs<1> _args;
  _args[1] = DocRouted /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_DocSaved(VARIANT_BOOL* DocSaved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocSaved"), DISPID(34575));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocSaved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_DocSaved(void)
{
  VARIANT_BOOL DocSaved;
  this->get_DocSaved((VARIANT_BOOL*)&DocSaved);
  return DocSaved;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_DocSaved(VARIANT_BOOL DocSaved/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocSaved"), DISPID(34575));
  TAutoArgs<1> _args;
  _args[1] = DocSaved /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Duration(long* Duration/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(34567));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Duration /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_JournalItemDispT<T>::get_Duration(void)
{
  long Duration;
  this->get_Duration((long*)&Duration);
  return Duration;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Duration(long Duration/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Duration"), DISPID(34567));
  TAutoArgs<1> _args;
  _args[1] = Duration /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_End(DATE* End/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("End"), DISPID(34568));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(End /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_JournalItemDispT<T>::get_End(void)
{
  DATE End;
  this->get_End((DATE*)&End);
  return End;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_End(DATE End/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("End"), DISPID(34568));
  TAutoArgs<1> _args;
  _args[1] = End /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Type(BSTR* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(34560));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_JournalItemDispT<T>::get_Type(void)
{
  BSTR Type;
  this->get_Type((BSTR*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Type(BSTR Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(34560));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Recipients"), DISPID(63508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)Recipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_JournalItemDispT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  this->get_Recipients(&Recipients);
  return Recipients;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Start(DATE* Start/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(34566));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Start /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_JournalItemDispT<T>::get_Start(void)
{
  DATE Start;
  this->get_Start((DATE*)&Start);
  return Start;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_Start(DATE Start/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(34566));
  TAutoArgs<1> _args;
  _args[1] = Start /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Forward"), DISPID(63507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_JournalItemDispT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  this->Forward((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reply"), DISPID(63504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_JournalItemDispT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  this->Reply((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::ReplyAll(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReplyAll"), DISPID(63505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_JournalItemDispT<T>::ReplyAll(void)
{
  Outlook_xp::MailItem* Item;
  this->ReplyAll((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::StartTimer()
{
  _TDispID _dispid(*this, OLETEXT("StartTimer"), DISPID(63269));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::StopTimer()
{
  _TDispID _dispid(*this, OLETEXT("StopTimer"), DISPID(63270));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_JournalItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_JournalItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_JournalItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_JournalItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_JournalItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_JournalItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  NameSpaceEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006308C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
NameSpaceEventsDispT<T>::OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/, 
                                         Outlook_xp::MAPIFolder* Folder/*[in]*/)
{
  _TDispID _dispid(/* OptionsPagesAdd */ DISPID(61445));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)Folder /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_NoteItem
// Interface: _NoteItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_NoteItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_NoteItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_NoteItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_NoteItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_NoteItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_NoteItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Color(Outlook_xp::OlNoteColor* Color/*[out,retval]*/)
{
  return (*this)->get_Color(Color);
}

template <class T> Outlook_xp::OlNoteColor __fastcall
TCOM_NoteItemT<T>::get_Color(void)
{
  Outlook_xp::OlNoteColor Color;
  OLECHECK(this->get_Color((Outlook_xp::OlNoteColor*)&Color));
  return Color;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Color(Outlook_xp::OlNoteColor Color/*[in]*/)
{
  return (*this)->set_Color(Color);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_NoteItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_NoteItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_NoteItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOM_NoteItemT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_NoteItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Left(long* Left/*[out,retval]*/)
{
  return (*this)->get_Left(Left);
}

template <class T> long __fastcall
TCOM_NoteItemT<T>::get_Left(void)
{
  long Left;
  OLECHECK(this->get_Left((long*)&Left));
  return Left;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Left(long Left/*[in]*/)
{
  return (*this)->set_Left(Left);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_NoteItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_NoteItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_NoteItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_NoteItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Top(long* Top/*[out,retval]*/)
{
  return (*this)->get_Top(Top);
}

template <class T> long __fastcall
TCOM_NoteItemT<T>::get_Top(void)
{
  long Top;
  OLECHECK(this->get_Top((long*)&Top));
  return Top;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Top(long Top/*[in]*/)
{
  return (*this)->set_Top(Top);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOM_NoteItemT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_NoteItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_NoteItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_NoteItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_NoteItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_NoteItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_NoteItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_NoteItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_NoteItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _NoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063025-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_NoteItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_NoteItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_NoteItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_NoteItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NoteItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NoteItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Color(Outlook_xp::OlNoteColor* Color/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(35584));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Color /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlNoteColor __fastcall
_NoteItemDispT<T>::get_Color(void)
{
  Outlook_xp::OlNoteColor Color;
  this->get_Color((Outlook_xp::OlNoteColor*)&Color);
  return Color;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Color(Outlook_xp::OlNoteColor Color/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(35584));
  TAutoArgs<1> _args;
  _args[1] = (int)Color /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_NoteItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NoteItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_NoteItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(35587));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_NoteItemDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(35587));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_NoteItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Left(long* Left/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(35588));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Left /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_NoteItemDispT<T>::get_Left(void)
{
  long Left;
  this->get_Left((long*)&Left);
  return Left;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Left(long Left/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Left"), DISPID(35588));
  TAutoArgs<1> _args;
  _args[1] = Left /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NoteItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_NoteItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_NoteItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(63392));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_NoteItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Top(long* Top/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(35589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Top /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_NoteItemDispT<T>::get_Top(void)
{
  long Top;
  this->get_Top((long*)&Top);
  return Top;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Top(long Top/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Top"), DISPID(35589));
  TAutoArgs<1> _args;
  _args[1] = Top /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(35586));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_NoteItemDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(35586));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_NoteItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_NoteItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_NoteItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_NoteItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_NoteItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_NoteItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_NoteItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_NoteItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  OutlookBarGroup
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063073-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
OutlookBarGroupDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
OutlookBarGroupDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
OutlookBarGroupDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
OutlookBarGroupDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
OutlookBarGroupDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_Shortcuts(Outlook_xp::_OutlookBarShortcuts** Shortcuts/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Shortcuts"), DISPID(8450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_OutlookBarShortcuts**)Shortcuts /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_OutlookBarShortcutsPtr __fastcall
OutlookBarGroupDispT<T>::get_Shortcuts(void)
{
  Outlook_xp::_OutlookBarShortcutsPtr Shortcuts;
  this->get_Shortcuts(&Shortcuts);
  return Shortcuts;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::get_ViewType(Outlook_xp::OlOutlookBarViewType* ViewType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewType"), DISPID(8451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ViewType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlOutlookBarViewType __fastcall
OutlookBarGroupDispT<T>::get_ViewType(void)
{
  Outlook_xp::OlOutlookBarViewType ViewType;
  this->get_ViewType((Outlook_xp::OlOutlookBarViewType*)&ViewType);
  return ViewType;
}

template <class T> HRESULT __fastcall
OutlookBarGroupDispT<T>::set_ViewType(Outlook_xp::OlOutlookBarViewType ViewType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewType"), DISPID(8451));
  TAutoArgs<1> _args;
  _args[1] = (int)ViewType /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarShortcuts
// Interface: _OutlookBarShortcuts
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_OutlookBarShortcutsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::Item(VARIANT Index/*[in]*/, 
                                   Outlook_xp::OutlookBarShortcut** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::OutlookBarShortcut* __fastcall
TCOM_OutlookBarShortcutsT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::OutlookBarShortcut* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::OutlookBarShortcut**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                  VARIANT Index/*[in,opt]*/, 
                                  Outlook_xp::OutlookBarShortcut** Shortcut/*[out,retval]*/)
{
  return (*this)->Add(Target, Name, Index, Shortcut);
}

template <class T> Outlook_xp::OutlookBarShortcut* __fastcall
TCOM_OutlookBarShortcutsT<T>::Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                  VARIANT Index/*[in,opt]*/)
{
  Outlook_xp::OutlookBarShortcut* Shortcut;
  OLECHECK(this->Add(Target/*[in]*/, Name/*[in]*/, Index/*[in,opt]*/, (Outlook_xp::OutlookBarShortcut**)&Shortcut));
  return Shortcut;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarShortcutsT<T>::Remove(VARIANT Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

// *********************************************************************//
// DispIntf:  _OutlookBarShortcuts
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063074-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_OutlookBarShortcutsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_OutlookBarShortcutsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_OutlookBarShortcutsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_OutlookBarShortcutsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_OutlookBarShortcutsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::Item(VARIANT Index/*[in]*/, 
                                   Outlook_xp::OutlookBarShortcut** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarShortcut**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarShortcut* __fastcall
_OutlookBarShortcutsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::OutlookBarShortcut* Item;
  this->Item(Index, (Outlook_xp::OutlookBarShortcut**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                  VARIANT Index/*[in,opt]*/, 
                                  Outlook_xp::OutlookBarShortcut** Shortcut/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<3> _args;
  _args[1] = Target /*[VT_VARIANT:0]*/;
  _args[2] = Name /*[VT_BSTR:0]*/;
  _args[3] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarShortcut**)Shortcut /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarShortcut* __fastcall
_OutlookBarShortcutsDispT<T>::Add(VARIANT Target/*[in]*/, BSTR Name/*[in]*/, 
                                  VARIANT Index/*[in,opt]*/)
{
  Outlook_xp::OutlookBarShortcut* Shortcut;
  this->Add(Target, Name, Index, (Outlook_xp::OutlookBarShortcut**)&Shortcut);
  return Shortcut;
}

template <class T> HRESULT __fastcall
_OutlookBarShortcutsDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  OutlookBarShortcut
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063075-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
OutlookBarShortcutDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
OutlookBarShortcutDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
OutlookBarShortcutDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
OutlookBarShortcutDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
OutlookBarShortcutDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::set_Name(BSTR Name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::get_Target(VARIANT* Target/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Target"), DISPID(8448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Target /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT __fastcall
OutlookBarShortcutDispT<T>::get_Target(void)
{
  VARIANT Target;
  this->get_Target((VARIANT*)&Target);
  return Target;
}

template <class T> HRESULT __fastcall
OutlookBarShortcutDispT<T>::SetIcon(VARIANT Icon/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetIcon"), DISPID(64162));
  TAutoArgs<1> _args;
  _args[1] = Icon /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarGroups
// Interface: _OutlookBarGroups
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_OutlookBarGroupsT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_OutlookBarGroupsT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_OutlookBarGroupsT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_OutlookBarGroupsT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOM_OutlookBarGroupsT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::Item(VARIANT Index/*[in]*/, 
                                Outlook_xp::OutlookBarGroup** Item/*[out,retval]*/)
{
  return (*this)->Item(Index, Item);
}

template <class T> Outlook_xp::OutlookBarGroup* __fastcall
TCOM_OutlookBarGroupsT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::OutlookBarGroup* Item;
  OLECHECK(this->Item(Index/*[in]*/, (Outlook_xp::OutlookBarGroup**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/, 
                               Outlook_xp::OutlookBarGroup** Group/*[out,retval]*/)
{
  return (*this)->Add(Name, Index, Group);
}

template <class T> Outlook_xp::OutlookBarGroup* __fastcall
TCOM_OutlookBarGroupsT<T>::Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/)
{
  Outlook_xp::OutlookBarGroup* Group;
  OLECHECK(this->Add(Name/*[in]*/, Index/*[in,opt]*/, (Outlook_xp::OutlookBarGroup**)&Group));
  return Group;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarGroupsT<T>::Remove(VARIANT Index/*[in]*/)
{
  return (*this)->Remove(Index);
}

// *********************************************************************//
// DispIntf:  _OutlookBarGroups
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063072-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_OutlookBarGroupsDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_OutlookBarGroupsDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_OutlookBarGroupsDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_OutlookBarGroupsDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_OutlookBarGroupsDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::Item(VARIANT Index/*[in]*/, 
                                Outlook_xp::OutlookBarGroup** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarGroup**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarGroup* __fastcall
_OutlookBarGroupsDispT<T>::Item(VARIANT Index/*[in]*/)
{
  Outlook_xp::OutlookBarGroup* Item;
  this->Item(Index, (Outlook_xp::OutlookBarGroup**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/, 
                               Outlook_xp::OutlookBarGroup** Group/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(95));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarGroup**)Group /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarGroup* __fastcall
_OutlookBarGroupsDispT<T>::Add(BSTR Name/*[in]*/, VARIANT Index/*[in,opt]*/)
{
  Outlook_xp::OutlookBarGroup* Group;
  this->Add(Name, Index, (Outlook_xp::OutlookBarGroup**)&Group);
  return Group;
}

template <class T> HRESULT __fastcall
_OutlookBarGroupsDispT<T>::Remove(VARIANT Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  OutlookBarGroupsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307B-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
OutlookBarGroupsEventsDispT<T>::GroupAdd(Outlook_xp::OutlookBarGroup* NewGroup/*[in]*/)
{
  _TDispID _dispid(/* GroupAdd */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)NewGroup /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
OutlookBarGroupsEventsDispT<T>::BeforeGroupAdd(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeGroupAdd */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
OutlookBarGroupsEventsDispT<T>::BeforeGroupRemove(Outlook_xp::OutlookBarGroup* Group/*[in]*/, 
                                                  VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeGroupRemove */ DISPID(61443));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)Group /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_OutlookBarPane
// Interface: _OutlookBarPane
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_OutlookBarPaneT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_OutlookBarPaneT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_OutlookBarPaneT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_OutlookBarPaneT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Contents(Outlook_xp::OutlookBarStorage** Contents/*[out,retval]*/)
{
  return (*this)->get_Contents(Contents);
}

template <class T> Outlook_xp::OutlookBarStoragePtr __fastcall
TCOM_OutlookBarPaneT<T>::get_Contents(void)
{
  Outlook_xp::OutlookBarStoragePtr Contents;
  OLECHECK(this->get_Contents((Outlook_xp::OutlookBarStoragePtr*)&Contents));
  return Contents;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_CurrentGroup(Outlook_xp::OutlookBarGroup** CurrentGroup/*[out,retval]*/)
{
  return (*this)->get_CurrentGroup(CurrentGroup);
}

template <class T> Outlook_xp::OutlookBarGroupPtr __fastcall
TCOM_OutlookBarPaneT<T>::get_CurrentGroup(void)
{
  Outlook_xp::OutlookBarGroupPtr CurrentGroup;
  OLECHECK(this->get_CurrentGroup((Outlook_xp::OutlookBarGroupPtr*)&CurrentGroup));
  return CurrentGroup;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::_set_CurrentGroup(Outlook_xp::OutlookBarGroup* CurrentGroup/*[in]*/)
{
  return (*this)->_set_CurrentGroup(CurrentGroup);
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  return (*this)->get_Name(Name);
}

template <class T> BSTR __fastcall
TCOM_OutlookBarPaneT<T>::get_Name(void)
{
  BSTR Name = 0;
  OLECHECK(this->get_Name((BSTR*)&Name));
  return Name;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::get_Visible(VARIANT_BOOL* Visible/*[out,retval]*/)
{
  return (*this)->get_Visible(Visible);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_OutlookBarPaneT<T>::get_Visible(void)
{
  VARIANT_BOOL Visible;
  OLECHECK(this->get_Visible((VARIANT_BOOL*)&Visible));
  return Visible;
}

template <class T> HRESULT __fastcall
TCOM_OutlookBarPaneT<T>::set_Visible(VARIANT_BOOL Visible/*[in]*/)
{
  return (*this)->set_Visible(Visible);
}

// *********************************************************************//
// DispIntf:  _OutlookBarPane
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063070-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_OutlookBarPaneDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_OutlookBarPaneDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_OutlookBarPaneDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_OutlookBarPaneDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Contents(Outlook_xp::OutlookBarStorage** Contents/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Contents"), DISPID(8448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarStorage**)Contents /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarStoragePtr __fastcall
_OutlookBarPaneDispT<T>::get_Contents(void)
{
  Outlook_xp::OutlookBarStoragePtr Contents;
  this->get_Contents(&Contents);
  return Contents;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_CurrentGroup(Outlook_xp::OutlookBarGroup** CurrentGroup/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentGroup"), DISPID(8449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::OutlookBarGroup**)CurrentGroup /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OutlookBarGroupPtr __fastcall
_OutlookBarPaneDispT<T>::get_CurrentGroup(void)
{
  Outlook_xp::OutlookBarGroupPtr CurrentGroup;
  this->get_CurrentGroup(&CurrentGroup);
  return CurrentGroup;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::_set_CurrentGroup(Outlook_xp::OutlookBarGroup* CurrentGroup/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentGroup"), DISPID(8449));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)CurrentGroup /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Name(BSTR* Name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_OutlookBarPaneDispT<T>::get_Name(void)
{
  BSTR Name;
  this->get_Name((BSTR*)&Name);
  return Name;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::get_Visible(VARIANT_BOOL* Visible/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(8451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Visible /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_OutlookBarPaneDispT<T>::get_Visible(void)
{
  VARIANT_BOOL Visible;
  this->get_Visible((VARIANT_BOOL*)&Visible);
  return Visible;
}

template <class T> HRESULT __fastcall
_OutlookBarPaneDispT<T>::set_Visible(VARIANT_BOOL Visible/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(8451));
  TAutoArgs<1> _args;
  _args[1] = Visible /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  OutlookBarStorage
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063071-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
OutlookBarStorageDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
OutlookBarStorageDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
OutlookBarStorageDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
OutlookBarStorageDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
OutlookBarStorageDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
OutlookBarStorageDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
OutlookBarStorageDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
OutlookBarStorageDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
OutlookBarStorageDispT<T>::get_Groups(Outlook_xp::_OutlookBarGroups** Groups/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Groups"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_OutlookBarGroups**)Groups /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_OutlookBarGroupsPtr __fastcall
OutlookBarStorageDispT<T>::get_Groups(void)
{
  Outlook_xp::_OutlookBarGroupsPtr Groups;
  this->get_Groups(&Groups);
  return Groups;
}

// *********************************************************************//
// DispIntf:  OutlookBarPaneEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307A-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
OutlookBarPaneEventsDispT<T>::BeforeNavigate(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/, 
                                             VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeNavigate */ DISPID(61441));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)Shortcut /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
OutlookBarPaneEventsDispT<T>::BeforeGroupSwitch(Outlook_xp::OutlookBarGroup* ToGroup/*[in]*/, 
                                                VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeGroupSwitch */ DISPID(61442));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarGroup*)ToGroup /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  OutlookBarShortcutsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006307C-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
OutlookBarShortcutsEventsDispT<T>::ShortcutAdd(Outlook_xp::OutlookBarShortcut* NewShortcut/*[in]*/)
{
  _TDispID _dispid(/* ShortcutAdd */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)NewShortcut /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
OutlookBarShortcutsEventsDispT<T>::BeforeShortcutAdd(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeShortcutAdd */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
OutlookBarShortcutsEventsDispT<T>::BeforeShortcutRemove(Outlook_xp::OutlookBarShortcut* Shortcut/*[in]*/
                                                        , VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeShortcutRemove */ DISPID(61443));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::OutlookBarShortcut*)Shortcut /*[VT_USERDEFINED:1]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  PropertyPageSite
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006307F-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
PropertyPageSiteDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
PropertyPageSiteDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
PropertyPageSiteDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
PropertyPageSiteDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
PropertyPageSiteDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
PropertyPageSiteDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
PropertyPageSiteDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PropertyPageSiteDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
PropertyPageSiteDispT<T>::OnStatusChange()
{
  _TDispID _dispid(*this, OLETEXT("OnStatusChange"), DISPID(8448));
  return OleFunction(_dispid);
}

// *********************************************************************//
// DispIntf:  Pages
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {0006303F-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
PagesDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
PagesDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
PagesDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
PagesDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PagesDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(80));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
PagesDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::Item(VARIANT Index/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PagesDispT<T>::Item(VARIANT Index/*[in]*/)
{
  LPDISPATCH Item;
  this->Item(Index, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::Add(VARIANT Name/*[in,opt]*/, LPDISPATCH* Page/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(300));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Page /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
PagesDispT<T>::Add(VARIANT Name/*[in,opt]*/)
{
  LPDISPATCH Page;
  this->Add(Name, (LPDISPATCH*)&Page);
  return Page;
}

template <class T> HRESULT __fastcall
PagesDispT<T>::Remove(long Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Remove"), DISPID(301));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOM_PostItem
// Interface: _PostItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_PostItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_PostItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_PostItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_PostItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_PostItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_PostItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_PostItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_PostItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_PostItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_PostItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_PostItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_PostItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_PostItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_PostItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_PostItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_PostItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_PostItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_PostItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_PostItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_PostItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_PostItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  return (*this)->get_ExpiryTime(ExpiryTime);
}

template <class T> DATE __fastcall
TCOM_PostItemT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  OLECHECK(this->get_ExpiryTime((DATE*)&ExpiryTime));
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  return (*this)->set_ExpiryTime(ExpiryTime);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/)
{
  return (*this)->get_HTMLBody(HTMLBody);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_HTMLBody(void)
{
  BSTR HTMLBody = 0;
  OLECHECK(this->get_HTMLBody((BSTR*)&HTMLBody));
  return HTMLBody;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_HTMLBody(BSTR HTMLBody/*[in]*/)
{
  return (*this)->set_HTMLBody(HTMLBody);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  return (*this)->get_ReceivedTime(ReceivedTime);
}

template <class T> DATE __fastcall
TCOM_PostItemT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  OLECHECK(this->get_ReceivedTime((DATE*)&ReceivedTime));
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  return (*this)->get_SenderName(SenderName);
}

template <class T> BSTR __fastcall
TCOM_PostItemT<T>::get_SenderName(void)
{
  BSTR SenderName = 0;
  OLECHECK(this->get_SenderName((BSTR*)&SenderName));
  return SenderName;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  return (*this)->get_SentOn(SentOn);
}

template <class T> DATE __fastcall
TCOM_PostItemT<T>::get_SentOn(void)
{
  DATE SentOn;
  OLECHECK(this->get_SentOn((DATE*)&SentOn));
  return SentOn;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::ClearConversationIndex(void)
{
  return (*this)->ClearConversationIndex();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Forward(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_PostItemT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Forward((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Post(void)
{
  return (*this)->Post();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  return (*this)->Reply(Item);
}

template <class T> Outlook_xp::MailItem* __fastcall
TCOM_PostItemT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  OLECHECK(this->Reply((Outlook_xp::MailItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_PostItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_PostItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/)
{
  return (*this)->get_BodyFormat(BodyFormat);
}

template <class T> Outlook_xp::OlBodyFormat __fastcall
TCOM_PostItemT<T>::get_BodyFormat(void)
{
  Outlook_xp::OlBodyFormat BodyFormat;
  OLECHECK(this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat));
  return BodyFormat;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/)
{
  return (*this)->set_BodyFormat(BodyFormat);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_PostItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  return (*this)->get_InternetCodepage(InternetCodepage);
}

template <class T> long __fastcall
TCOM_PostItemT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  return (*this)->set_InternetCodepage(InternetCodepage);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_PostItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::SetACLs(VARIANT_BOOL* AllOkay/*[out,retval]*/)
{
  return (*this)->SetACLs(AllOkay);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_PostItemT<T>::SetACLs(void)
{
  VARIANT_BOOL AllOkay;
  OLECHECK(this->SetACLs((VARIANT_BOOL*)&AllOkay));
  return AllOkay;
}

template <class T> HRESULT __fastcall
TCOM_PostItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_PostItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _PostItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063024-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_PostItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_PostItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_PostItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_PostItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_PostItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_PostItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_PostItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_PostItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_PostItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_PostItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_PostItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_PostItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_PostItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_PostItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_PostItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_PostItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_PostItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_PostItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_PostItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_PostItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_PostItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_ExpiryTime(DATE* ExpiryTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ExpiryTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_PostItemDispT<T>::get_ExpiryTime(void)
{
  DATE ExpiryTime;
  this->get_ExpiryTime((DATE*)&ExpiryTime);
  return ExpiryTime;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_ExpiryTime(DATE ExpiryTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExpiryTime"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = ExpiryTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_HTMLBody(BSTR* HTMLBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLBody"), DISPID(62468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HTMLBody /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_HTMLBody(void)
{
  BSTR HTMLBody;
  this->get_HTMLBody((BSTR*)&HTMLBody);
  return HTMLBody;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_HTMLBody(BSTR HTMLBody/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HTMLBody"), DISPID(62468));
  TAutoArgs<1> _args;
  _args[1] = HTMLBody /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_ReceivedTime(DATE* ReceivedTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReceivedTime"), DISPID(3590));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReceivedTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_PostItemDispT<T>::get_ReceivedTime(void)
{
  DATE ReceivedTime;
  this->get_ReceivedTime((DATE*)&ReceivedTime);
  return ReceivedTime;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_SenderName(BSTR* SenderName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SenderName"), DISPID(3098));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SenderName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_PostItemDispT<T>::get_SenderName(void)
{
  BSTR SenderName;
  this->get_SenderName((BSTR*)&SenderName);
  return SenderName;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_SentOn(DATE* SentOn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SentOn"), DISPID(57));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SentOn /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_PostItemDispT<T>::get_SentOn(void)
{
  DATE SentOn;
  this->get_SentOn((DATE*)&SentOn);
  return SentOn;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::ClearConversationIndex()
{
  _TDispID _dispid(*this, OLETEXT("ClearConversationIndex"), DISPID(63522));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Forward(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Forward"), DISPID(63507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_PostItemDispT<T>::Forward(void)
{
  Outlook_xp::MailItem* Item;
  this->Forward((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Post()
{
  _TDispID _dispid(*this, OLETEXT("Post"), DISPID(61557));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::Reply(Outlook_xp::MailItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reply"), DISPID(63504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::MailItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::MailItem* __fastcall
_PostItemDispT<T>::Reply(void)
{
  Outlook_xp::MailItem* Item;
  this->Reply((Outlook_xp::MailItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_PostItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_PostItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_BodyFormat(Outlook_xp::OlBodyFormat* BodyFormat/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BodyFormat"), DISPID(64073));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)BodyFormat /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlBodyFormat __fastcall
_PostItemDispT<T>::get_BodyFormat(void)
{
  Outlook_xp::OlBodyFormat BodyFormat;
  this->get_BodyFormat((Outlook_xp::OlBodyFormat*)&BodyFormat);
  return BodyFormat;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_BodyFormat(Outlook_xp::OlBodyFormat BodyFormat/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BodyFormat"), DISPID(64073));
  TAutoArgs<1> _args;
  _args[1] = (int)BodyFormat /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_PostItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InternetCodepage /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_PostItemDispT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  this->get_InternetCodepage((long*)&InternetCodepage);
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<1> _args;
  _args[1] = InternetCodepage /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_PostItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::SetACLs(VARIANT_BOOL* AllOkay/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetACLs"), DISPID(64163));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(AllOkay /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_PostItemDispT<T>::SetACLs(void)
{
  VARIANT_BOOL AllOkay;
  this->SetACLs((VARIANT_BOOL*)&AllOkay);
  return AllOkay;
}

template <class T> HRESULT __fastcall
_PostItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_PostItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_RemoteItem
// Interface: _RemoteItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_RemoteItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_RemoteItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_RemoteItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_RemoteItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_RemoteItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_RemoteItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_RemoteItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_RemoteItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_RemoteItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_RemoteItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_RemoteItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_RemoteItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_RemoteItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_RemoteItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_RemoteItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_RemoteItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_RemoteItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_RemoteItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_RemoteItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_RemoteItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_RemoteItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_HasAttachment(VARIANT_BOOL* HasAttachment/*[out,retval]*/)
{
  return (*this)->get_HasAttachment(HasAttachment);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_RemoteItemT<T>::get_HasAttachment(void)
{
  VARIANT_BOOL HasAttachment;
  OLECHECK(this->get_HasAttachment((VARIANT_BOOL*)&HasAttachment));
  return HasAttachment;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_RemoteMessageClass(BSTR* RemoteMessageClass/*[out,retval]*/)
{
  return (*this)->get_RemoteMessageClass(RemoteMessageClass);
}

template <class T> BSTR __fastcall
TCOM_RemoteItemT<T>::get_RemoteMessageClass(void)
{
  BSTR RemoteMessageClass = 0;
  OLECHECK(this->get_RemoteMessageClass((BSTR*)&RemoteMessageClass));
  return RemoteMessageClass;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_TransferSize(long* TransferSize/*[out,retval]*/)
{
  return (*this)->get_TransferSize(TransferSize);
}

template <class T> long __fastcall
TCOM_RemoteItemT<T>::get_TransferSize(void)
{
  long TransferSize;
  OLECHECK(this->get_TransferSize((long*)&TransferSize));
  return TransferSize;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_TransferTime(long* TransferTime/*[out,retval]*/)
{
  return (*this)->get_TransferTime(TransferTime);
}

template <class T> long __fastcall
TCOM_RemoteItemT<T>::get_TransferTime(void)
{
  long TransferTime;
  OLECHECK(this->get_TransferTime((long*)&TransferTime));
  return TransferTime;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_RemoteItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_RemoteItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_RemoteItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_RemoteItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_RemoteItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_RemoteItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _RemoteItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063023-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_RemoteItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_RemoteItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_RemoteItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_RemoteItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_RemoteItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_RemoteItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_RemoteItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_RemoteItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_RemoteItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_RemoteItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_RemoteItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_RemoteItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_RemoteItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_RemoteItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_RemoteItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_RemoteItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_RemoteItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_RemoteItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_RemoteItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_RemoteItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_RemoteItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_HasAttachment(VARIANT_BOOL* HasAttachment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HasAttachment"), DISPID(36615));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HasAttachment /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_RemoteItemDispT<T>::get_HasAttachment(void)
{
  VARIANT_BOOL HasAttachment;
  this->get_HasAttachment((VARIANT_BOOL*)&HasAttachment);
  return HasAttachment;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_RemoteMessageClass(BSTR* RemoteMessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteMessageClass"), DISPID(36610));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(RemoteMessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_RemoteItemDispT<T>::get_RemoteMessageClass(void)
{
  BSTR RemoteMessageClass;
  this->get_RemoteMessageClass((BSTR*)&RemoteMessageClass);
  return RemoteMessageClass;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_TransferSize(long* TransferSize/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TransferSize"), DISPID(36613));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TransferSize /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_RemoteItemDispT<T>::get_TransferSize(void)
{
  long TransferSize;
  this->get_TransferSize((long*)&TransferSize);
  return TransferSize;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_TransferTime(long* TransferTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TransferTime"), DISPID(36612));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TransferTime /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_RemoteItemDispT<T>::get_TransferTime(void)
{
  long TransferTime;
  this->get_TransferTime((long*)&TransferTime);
  return TransferTime;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_RemoteItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_RemoteItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_RemoteItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_RemoteItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_RemoteItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_RemoteItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_ReportItem
// Interface: _ReportItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_ReportItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_ReportItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_ReportItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_ReportItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_ReportItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_ReportItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_ReportItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_ReportItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_ReportItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_ReportItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_ReportItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_ReportItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ReportItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_ReportItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ReportItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_ReportItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_ReportItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_ReportItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ReportItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_ReportItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ReportItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_ReportItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_ReportItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_ReportItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_ReportItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_ReportItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_ReportItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_ReportItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _ReportItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063026-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_ReportItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_ReportItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_ReportItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ReportItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_ReportItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_ReportItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ReportItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_ReportItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_ReportItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_ReportItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_ReportItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_ReportItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ReportItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ReportItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ReportItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_ReportItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_ReportItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_ReportItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ReportItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_ReportItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ReportItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_ReportItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_ReportItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_ReportItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_ReportItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_ReportItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_ReportItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_ReportItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_TaskItem
// Interface: _TaskItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_TaskItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_TaskItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_TaskItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_TaskItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_TaskItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_TaskItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_TaskItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_TaskItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_TaskItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_TaskItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_TaskItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ActualWork(long* ActualWork/*[out,retval]*/)
{
  return (*this)->get_ActualWork(ActualWork);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_ActualWork(void)
{
  long ActualWork;
  OLECHECK(this->get_ActualWork((long*)&ActualWork));
  return ActualWork;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ActualWork(long ActualWork/*[in]*/)
{
  return (*this)->set_ActualWork(ActualWork);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_CardData(BSTR* CardData/*[out,retval]*/)
{
  return (*this)->get_CardData(CardData);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_CardData(void)
{
  BSTR CardData = 0;
  OLECHECK(this->get_CardData((BSTR*)&CardData));
  return CardData;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_CardData(BSTR CardData/*[in]*/)
{
  return (*this)->set_CardData(CardData);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Complete(VARIANT_BOOL* Complete/*[out,retval]*/)
{
  return (*this)->get_Complete(Complete);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_Complete(void)
{
  VARIANT_BOOL Complete;
  OLECHECK(this->get_Complete((VARIANT_BOOL*)&Complete));
  return Complete;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Complete(VARIANT_BOOL Complete/*[in]*/)
{
  return (*this)->set_Complete(Complete);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Contacts(BSTR* Contacts/*[out,retval]*/)
{
  return (*this)->get_Contacts(Contacts);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Contacts(void)
{
  BSTR Contacts = 0;
  OLECHECK(this->get_Contacts((BSTR*)&Contacts));
  return Contacts;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Contacts(BSTR Contacts/*[in]*/)
{
  return (*this)->set_Contacts(Contacts);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ContactNames(BSTR* ContactNames/*[out,retval]*/)
{
  return (*this)->get_ContactNames(ContactNames);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_ContactNames(void)
{
  BSTR ContactNames = 0;
  OLECHECK(this->get_ContactNames((BSTR*)&ContactNames));
  return ContactNames;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ContactNames(BSTR ContactNames/*[in]*/)
{
  return (*this)->set_ContactNames(ContactNames);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_DateCompleted(DATE* DateCompleted/*[out,retval]*/)
{
  return (*this)->get_DateCompleted(DateCompleted);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_DateCompleted(void)
{
  DATE DateCompleted;
  OLECHECK(this->get_DateCompleted((DATE*)&DateCompleted));
  return DateCompleted;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_DateCompleted(DATE DateCompleted/*[in]*/)
{
  return (*this)->set_DateCompleted(DateCompleted);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_DelegationState(Outlook_xp::OlTaskDelegationState* DelegationState/*[out,retval]*/)
{
  return (*this)->get_DelegationState(DelegationState);
}

template <class T> Outlook_xp::OlTaskDelegationState __fastcall
TCOM_TaskItemT<T>::get_DelegationState(void)
{
  Outlook_xp::OlTaskDelegationState DelegationState;
  OLECHECK(this->get_DelegationState((Outlook_xp::OlTaskDelegationState*)&DelegationState));
  return DelegationState;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Delegator(BSTR* Delegator/*[out,retval]*/)
{
  return (*this)->get_Delegator(Delegator);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Delegator(void)
{
  BSTR Delegator = 0;
  OLECHECK(this->get_Delegator((BSTR*)&Delegator));
  return Delegator;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_DueDate(DATE* DueDate/*[out,retval]*/)
{
  return (*this)->get_DueDate(DueDate);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_DueDate(void)
{
  DATE DueDate;
  OLECHECK(this->get_DueDate((DATE*)&DueDate));
  return DueDate;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_DueDate(DATE DueDate/*[in]*/)
{
  return (*this)->set_DueDate(DueDate);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/)
{
  return (*this)->get_IsRecurring(IsRecurring);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_IsRecurring(void)
{
  VARIANT_BOOL IsRecurring;
  OLECHECK(this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring));
  return IsRecurring;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Ordinal(long* Ordinal/*[out,retval]*/)
{
  return (*this)->get_Ordinal(Ordinal);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_Ordinal(void)
{
  long Ordinal;
  OLECHECK(this->get_Ordinal((long*)&Ordinal));
  return Ordinal;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Ordinal(long Ordinal/*[in]*/)
{
  return (*this)->set_Ordinal(Ordinal);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Owner(BSTR* Owner/*[out,retval]*/)
{
  return (*this)->get_Owner(Owner);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Owner(void)
{
  BSTR Owner = 0;
  OLECHECK(this->get_Owner((BSTR*)&Owner));
  return Owner;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Owner(BSTR Owner/*[in]*/)
{
  return (*this)->set_Owner(Owner);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Ownership(Outlook_xp::OlTaskOwnership* Ownership/*[out,retval]*/)
{
  return (*this)->get_Ownership(Ownership);
}

template <class T> Outlook_xp::OlTaskOwnership __fastcall
TCOM_TaskItemT<T>::get_Ownership(void)
{
  Outlook_xp::OlTaskOwnership Ownership;
  OLECHECK(this->get_Ownership((Outlook_xp::OlTaskOwnership*)&Ownership));
  return Ownership;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_PercentComplete(long* PercentComplete/*[out,retval]*/)
{
  return (*this)->get_PercentComplete(PercentComplete);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_PercentComplete(void)
{
  long PercentComplete;
  OLECHECK(this->get_PercentComplete((long*)&PercentComplete));
  return PercentComplete;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_PercentComplete(long PercentComplete/*[in]*/)
{
  return (*this)->set_PercentComplete(PercentComplete);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  return (*this)->get_Recipients(Recipients);
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
TCOM_TaskItemT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  OLECHECK(this->get_Recipients((Outlook_xp::RecipientsPtr*)&Recipients));
  return Recipients;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  return (*this)->get_ReminderTime(ReminderTime);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  OLECHECK(this->get_ReminderTime((DATE*)&ReminderTime));
  return ReminderTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  return (*this)->set_ReminderTime(ReminderTime);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  return (*this)->get_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  OLECHECK(this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault));
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  return (*this)->set_ReminderOverrideDefault(ReminderOverrideDefault);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  return (*this)->get_ReminderPlaySound(ReminderPlaySound);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  OLECHECK(this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound));
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  return (*this)->set_ReminderPlaySound(ReminderPlaySound);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  return (*this)->get_ReminderSet(ReminderSet);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  OLECHECK(this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet));
  return ReminderSet;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  return (*this)->set_ReminderSet(ReminderSet);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  return (*this)->get_ReminderSoundFile(ReminderSoundFile);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile = 0;
  OLECHECK(this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile));
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  return (*this)->set_ReminderSoundFile(ReminderSoundFile);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ResponseState(Outlook_xp::OlTaskResponse* ResponseState/*[out,retval]*/)
{
  return (*this)->get_ResponseState(ResponseState);
}

template <class T> Outlook_xp::OlTaskResponse __fastcall
TCOM_TaskItemT<T>::get_ResponseState(void)
{
  Outlook_xp::OlTaskResponse ResponseState;
  OLECHECK(this->get_ResponseState((Outlook_xp::OlTaskResponse*)&ResponseState));
  return ResponseState;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Role(BSTR* Role/*[out,retval]*/)
{
  return (*this)->get_Role(Role);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_Role(void)
{
  BSTR Role = 0;
  OLECHECK(this->get_Role((BSTR*)&Role));
  return Role;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Role(BSTR Role/*[in]*/)
{
  return (*this)->set_Role(Role);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_SchedulePlusPriority(BSTR* SchedulePlusPriority/*[out,retval]*/)
{
  return (*this)->get_SchedulePlusPriority(SchedulePlusPriority);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_SchedulePlusPriority(void)
{
  BSTR SchedulePlusPriority = 0;
  OLECHECK(this->get_SchedulePlusPriority((BSTR*)&SchedulePlusPriority));
  return SchedulePlusPriority;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_SchedulePlusPriority(BSTR SchedulePlusPriority/*[in]*/)
{
  return (*this)->set_SchedulePlusPriority(SchedulePlusPriority);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_StartDate(DATE* StartDate/*[out,retval]*/)
{
  return (*this)->get_StartDate(StartDate);
}

template <class T> DATE __fastcall
TCOM_TaskItemT<T>::get_StartDate(void)
{
  DATE StartDate;
  OLECHECK(this->get_StartDate((DATE*)&StartDate));
  return StartDate;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_StartDate(DATE StartDate/*[in]*/)
{
  return (*this)->set_StartDate(StartDate);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Status(Outlook_xp::OlTaskStatus* Status/*[out,retval]*/)
{
  return (*this)->get_Status(Status);
}

template <class T> Outlook_xp::OlTaskStatus __fastcall
TCOM_TaskItemT<T>::get_Status(void)
{
  Outlook_xp::OlTaskStatus Status;
  OLECHECK(this->get_Status((Outlook_xp::OlTaskStatus*)&Status));
  return Status;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_Status(Outlook_xp::OlTaskStatus Status/*[in]*/)
{
  return (*this)->set_Status(Status);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_StatusOnCompletionRecipients(BSTR* StatusOnCompletionRecipients/*[out,retval]*/)
{
  return (*this)->get_StatusOnCompletionRecipients(StatusOnCompletionRecipients);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_StatusOnCompletionRecipients(void)
{
  BSTR StatusOnCompletionRecipients = 0;
  OLECHECK(this->get_StatusOnCompletionRecipients((BSTR*)&StatusOnCompletionRecipients));
  return StatusOnCompletionRecipients;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_StatusOnCompletionRecipients(BSTR StatusOnCompletionRecipients/*[in]*/)
{
  return (*this)->set_StatusOnCompletionRecipients(StatusOnCompletionRecipients);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_StatusUpdateRecipients(BSTR* StatusUpdateRecipients/*[out,retval]*/)
{
  return (*this)->get_StatusUpdateRecipients(StatusUpdateRecipients);
}

template <class T> BSTR __fastcall
TCOM_TaskItemT<T>::get_StatusUpdateRecipients(void)
{
  BSTR StatusUpdateRecipients = 0;
  OLECHECK(this->get_StatusUpdateRecipients((BSTR*)&StatusUpdateRecipients));
  return StatusUpdateRecipients;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_StatusUpdateRecipients(BSTR StatusUpdateRecipients/*[in]*/)
{
  return (*this)->set_StatusUpdateRecipients(StatusUpdateRecipients);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_TeamTask(VARIANT_BOOL* TeamTask/*[out,retval]*/)
{
  return (*this)->get_TeamTask(TeamTask);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_TeamTask(void)
{
  VARIANT_BOOL TeamTask;
  OLECHECK(this->get_TeamTask((VARIANT_BOOL*)&TeamTask));
  return TeamTask;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_TeamTask(VARIANT_BOOL TeamTask/*[in]*/)
{
  return (*this)->set_TeamTask(TeamTask);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_TotalWork(long* TotalWork/*[out,retval]*/)
{
  return (*this)->get_TotalWork(TotalWork);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_TotalWork(void)
{
  long TotalWork;
  OLECHECK(this->get_TotalWork((long*)&TotalWork));
  return TotalWork;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_TotalWork(long TotalWork/*[in]*/)
{
  return (*this)->set_TotalWork(TotalWork);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Assign(Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->Assign(Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskItemT<T>::Assign(void)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->Assign((Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::CancelResponseState(void)
{
  return (*this)->CancelResponseState();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::ClearRecurrencePattern(void)
{
  return (*this)->ClearRecurrencePattern();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/)
{
  return (*this)->GetRecurrencePattern(RecurrencPattern);
}

template <class T> Outlook_xp::RecurrencePattern* __fastcall
TCOM_TaskItemT<T>::GetRecurrencePattern(void)
{
  Outlook_xp::RecurrencePattern* RecurrencPattern;
  OLECHECK(this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern));
  return RecurrencPattern;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::MarkComplete(void)
{
  return (*this)->MarkComplete();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, VARIANT fNoUI/*[in]*/, 
                           VARIANT fAdditionalTextDialog/*[in]*/, 
                           Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->Respond(Response, fNoUI, fAdditionalTextDialog, Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskItemT<T>::Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, VARIANT fNoUI/*[in]*/, 
                           VARIANT fAdditionalTextDialog/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->Respond(Response/*[in]*/, fNoUI/*[in]*/, fAdditionalTextDialog/*[in]*/, (Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::Send(void)
{
  return (*this)->Send();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::SkipRecurrence(VARIANT_BOOL* flg/*[out,retval]*/)
{
  return (*this)->SkipRecurrence(flg);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::SkipRecurrence(void)
{
  VARIANT_BOOL flg;
  OLECHECK(this->SkipRecurrence((VARIANT_BOOL*)&flg));
  return flg;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::StatusReport(LPDISPATCH* StatusReport/*[out,retval]*/)
{
  return (*this)->StatusReport(StatusReport);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskItemT<T>::StatusReport(void)
{
  LPDISPATCH StatusReport;
  OLECHECK(this->StatusReport((LPDISPATCH*)&StatusReport));
  return StatusReport;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_TaskItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_TaskItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_TaskItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  return (*this)->get_InternetCodepage(InternetCodepage);
}

template <class T> long __fastcall
TCOM_TaskItemT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  OLECHECK(this->get_InternetCodepage((long*)&InternetCodepage));
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  return (*this)->set_InternetCodepage(InternetCodepage);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_TaskItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_TaskItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _TaskItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063035-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_TaskItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_TaskItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_TaskItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_TaskItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_TaskItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_TaskItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_TaskItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_TaskItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_TaskItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_TaskItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_TaskItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ActualWork(long* ActualWork/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActualWork"), DISPID(33040));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ActualWork /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_ActualWork(void)
{
  long ActualWork;
  this->get_ActualWork((long*)&ActualWork);
  return ActualWork;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ActualWork(long ActualWork/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActualWork"), DISPID(33040));
  TAutoArgs<1> _args;
  _args[1] = ActualWork /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_CardData(BSTR* CardData/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CardData"), DISPID(33067));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CardData /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_CardData(void)
{
  BSTR CardData;
  this->get_CardData((BSTR*)&CardData);
  return CardData;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_CardData(BSTR CardData/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CardData"), DISPID(33067));
  TAutoArgs<1> _args;
  _args[1] = CardData /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Complete(VARIANT_BOOL* Complete/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Complete"), DISPID(33052));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Complete /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_Complete(void)
{
  VARIANT_BOOL Complete;
  this->get_Complete((VARIANT_BOOL*)&Complete);
  return Complete;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Complete(VARIANT_BOOL Complete/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Complete"), DISPID(33052));
  TAutoArgs<1> _args;
  _args[1] = Complete /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Contacts(BSTR* Contacts/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Contacts"), DISPID(34106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Contacts /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Contacts(void)
{
  BSTR Contacts;
  this->get_Contacts((BSTR*)&Contacts);
  return Contacts;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Contacts(BSTR Contacts/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Contacts"), DISPID(34106));
  TAutoArgs<1> _args;
  _args[1] = Contacts /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ContactNames(BSTR* ContactNames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactNames"), DISPID(34108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ContactNames /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_ContactNames(void)
{
  BSTR ContactNames;
  this->get_ContactNames((BSTR*)&ContactNames);
  return ContactNames;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ContactNames(BSTR ContactNames/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ContactNames"), DISPID(34108));
  TAutoArgs<1> _args;
  _args[1] = ContactNames /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_DateCompleted(DATE* DateCompleted/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DateCompleted"), DISPID(33039));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DateCompleted /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_DateCompleted(void)
{
  DATE DateCompleted;
  this->get_DateCompleted((DATE*)&DateCompleted);
  return DateCompleted;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_DateCompleted(DATE DateCompleted/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DateCompleted"), DISPID(33039));
  TAutoArgs<1> _args;
  _args[1] = DateCompleted /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_DelegationState(Outlook_xp::OlTaskDelegationState* DelegationState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DelegationState"), DISPID(33066));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DelegationState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlTaskDelegationState __fastcall
_TaskItemDispT<T>::get_DelegationState(void)
{
  Outlook_xp::OlTaskDelegationState DelegationState;
  this->get_DelegationState((Outlook_xp::OlTaskDelegationState*)&DelegationState);
  return DelegationState;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Delegator(BSTR* Delegator/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delegator"), DISPID(33057));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Delegator /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Delegator(void)
{
  BSTR Delegator;
  this->get_Delegator((BSTR*)&Delegator);
  return Delegator;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_DueDate(DATE* DueDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DueDate"), DISPID(33029));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DueDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_DueDate(void)
{
  DATE DueDate;
  this->get_DueDate((DATE*)&DueDate);
  return DueDate;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_DueDate(DATE DueDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DueDate"), DISPID(33029));
  TAutoArgs<1> _args;
  _args[1] = DueDate /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_IsRecurring(VARIANT_BOOL* IsRecurring/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsRecurring"), DISPID(62999));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsRecurring /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_IsRecurring(void)
{
  VARIANT_BOOL IsRecurring;
  this->get_IsRecurring((VARIANT_BOOL*)&IsRecurring);
  return IsRecurring;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Ordinal(long* Ordinal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ordinal"), DISPID(33059));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Ordinal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_Ordinal(void)
{
  long Ordinal;
  this->get_Ordinal((long*)&Ordinal);
  return Ordinal;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Ordinal(long Ordinal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ordinal"), DISPID(33059));
  TAutoArgs<1> _args;
  _args[1] = Ordinal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Owner(BSTR* Owner/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(33055));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Owner /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Owner(void)
{
  BSTR Owner;
  this->get_Owner((BSTR*)&Owner);
  return Owner;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Owner(BSTR Owner/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(33055));
  TAutoArgs<1> _args;
  _args[1] = Owner /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Ownership(Outlook_xp::OlTaskOwnership* Ownership/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ownership"), DISPID(33065));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Ownership /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlTaskOwnership __fastcall
_TaskItemDispT<T>::get_Ownership(void)
{
  Outlook_xp::OlTaskOwnership Ownership;
  this->get_Ownership((Outlook_xp::OlTaskOwnership*)&Ownership);
  return Ownership;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_PercentComplete(long* PercentComplete/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PercentComplete"), DISPID(63007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PercentComplete /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_PercentComplete(void)
{
  long PercentComplete;
  this->get_PercentComplete((long*)&PercentComplete);
  return PercentComplete;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_PercentComplete(long PercentComplete/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PercentComplete"), DISPID(63007));
  TAutoArgs<1> _args;
  _args[1] = PercentComplete /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Recipients(Outlook_xp::Recipients** Recipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Recipients"), DISPID(63508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Recipients**)Recipients /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::RecipientsPtr __fastcall
_TaskItemDispT<T>::get_Recipients(void)
{
  Outlook_xp::RecipientsPtr Recipients;
  this->get_Recipients(&Recipients);
  return Recipients;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ReminderTime(DATE* ReminderTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_ReminderTime(void)
{
  DATE ReminderTime;
  this->get_ReminderTime((DATE*)&ReminderTime);
  return ReminderTime;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ReminderTime(DATE ReminderTime/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderTime"), DISPID(34050));
  TAutoArgs<1> _args;
  _args[1] = ReminderTime /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ReminderOverrideDefault(VARIANT_BOOL* ReminderOverrideDefault/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderOverrideDefault /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_ReminderOverrideDefault(void)
{
  VARIANT_BOOL ReminderOverrideDefault;
  this->get_ReminderOverrideDefault((VARIANT_BOOL*)&ReminderOverrideDefault);
  return ReminderOverrideDefault;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ReminderOverrideDefault(VARIANT_BOOL ReminderOverrideDefault/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderOverrideDefault"), DISPID(34076));
  TAutoArgs<1> _args;
  _args[1] = ReminderOverrideDefault /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ReminderPlaySound(VARIANT_BOOL* ReminderPlaySound/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderPlaySound /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_ReminderPlaySound(void)
{
  VARIANT_BOOL ReminderPlaySound;
  this->get_ReminderPlaySound((VARIANT_BOOL*)&ReminderPlaySound);
  return ReminderPlaySound;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ReminderPlaySound(VARIANT_BOOL ReminderPlaySound/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderPlaySound"), DISPID(34078));
  TAutoArgs<1> _args;
  _args[1] = ReminderPlaySound /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ReminderSet(VARIANT_BOOL* ReminderSet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSet /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_ReminderSet(void)
{
  VARIANT_BOOL ReminderSet;
  this->get_ReminderSet((VARIANT_BOOL*)&ReminderSet);
  return ReminderSet;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ReminderSet(VARIANT_BOOL ReminderSet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSet"), DISPID(34051));
  TAutoArgs<1> _args;
  _args[1] = ReminderSet /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ReminderSoundFile(BSTR* ReminderSoundFile/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ReminderSoundFile /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_ReminderSoundFile(void)
{
  BSTR ReminderSoundFile;
  this->get_ReminderSoundFile((BSTR*)&ReminderSoundFile);
  return ReminderSoundFile;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_ReminderSoundFile(BSTR ReminderSoundFile/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReminderSoundFile"), DISPID(34079));
  TAutoArgs<1> _args;
  _args[1] = ReminderSoundFile /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ResponseState(Outlook_xp::OlTaskResponse* ResponseState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResponseState"), DISPID(63011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)ResponseState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlTaskResponse __fastcall
_TaskItemDispT<T>::get_ResponseState(void)
{
  Outlook_xp::OlTaskResponse ResponseState;
  this->get_ResponseState((Outlook_xp::OlTaskResponse*)&ResponseState);
  return ResponseState;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Role(BSTR* Role/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Role"), DISPID(33063));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Role /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_Role(void)
{
  BSTR Role;
  this->get_Role((BSTR*)&Role);
  return Role;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Role(BSTR Role/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Role"), DISPID(33063));
  TAutoArgs<1> _args;
  _args[1] = Role /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_SchedulePlusPriority(BSTR* SchedulePlusPriority/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SchedulePlusPriority"), DISPID(33071));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(SchedulePlusPriority /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_SchedulePlusPriority(void)
{
  BSTR SchedulePlusPriority;
  this->get_SchedulePlusPriority((BSTR*)&SchedulePlusPriority);
  return SchedulePlusPriority;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_SchedulePlusPriority(BSTR SchedulePlusPriority/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SchedulePlusPriority"), DISPID(33071));
  TAutoArgs<1> _args;
  _args[1] = SchedulePlusPriority /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_StartDate(DATE* StartDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartDate"), DISPID(33028));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StartDate /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskItemDispT<T>::get_StartDate(void)
{
  DATE StartDate;
  this->get_StartDate((DATE*)&StartDate);
  return StartDate;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_StartDate(DATE StartDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartDate"), DISPID(33028));
  TAutoArgs<1> _args;
  _args[1] = StartDate /*[VT_DATE:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Status(Outlook_xp::OlTaskStatus* Status/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Status"), DISPID(33025));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Status /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlTaskStatus __fastcall
_TaskItemDispT<T>::get_Status(void)
{
  Outlook_xp::OlTaskStatus Status;
  this->get_Status((Outlook_xp::OlTaskStatus*)&Status);
  return Status;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_Status(Outlook_xp::OlTaskStatus Status/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Status"), DISPID(33025));
  TAutoArgs<1> _args;
  _args[1] = (int)Status /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_StatusOnCompletionRecipients(BSTR* StatusOnCompletionRecipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StatusOnCompletionRecipients"), DISPID(3586));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StatusOnCompletionRecipients /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_StatusOnCompletionRecipients(void)
{
  BSTR StatusOnCompletionRecipients;
  this->get_StatusOnCompletionRecipients((BSTR*)&StatusOnCompletionRecipients);
  return StatusOnCompletionRecipients;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_StatusOnCompletionRecipients(BSTR StatusOnCompletionRecipients/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StatusOnCompletionRecipients"), DISPID(3586));
  TAutoArgs<1> _args;
  _args[1] = StatusOnCompletionRecipients /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_StatusUpdateRecipients(BSTR* StatusUpdateRecipients/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StatusUpdateRecipients"), DISPID(3587));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StatusUpdateRecipients /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskItemDispT<T>::get_StatusUpdateRecipients(void)
{
  BSTR StatusUpdateRecipients;
  this->get_StatusUpdateRecipients((BSTR*)&StatusUpdateRecipients);
  return StatusUpdateRecipients;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_StatusUpdateRecipients(BSTR StatusUpdateRecipients/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StatusUpdateRecipients"), DISPID(3587));
  TAutoArgs<1> _args;
  _args[1] = StatusUpdateRecipients /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_TeamTask(VARIANT_BOOL* TeamTask/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TeamTask"), DISPID(33027));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TeamTask /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_TeamTask(void)
{
  VARIANT_BOOL TeamTask;
  this->get_TeamTask((VARIANT_BOOL*)&TeamTask);
  return TeamTask;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_TeamTask(VARIANT_BOOL TeamTask/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TeamTask"), DISPID(33027));
  TAutoArgs<1> _args;
  _args[1] = TeamTask /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_TotalWork(long* TotalWork/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TotalWork"), DISPID(33041));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(TotalWork /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_TotalWork(void)
{
  long TotalWork;
  this->get_TotalWork((long*)&TotalWork);
  return TotalWork;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_TotalWork(long TotalWork/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TotalWork"), DISPID(33041));
  TAutoArgs<1> _args;
  _args[1] = TotalWork /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Assign(Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Assign"), DISPID(63008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskItemDispT<T>::Assign(void)
{
  Outlook_xp::TaskItem* Item;
  this->Assign((Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::CancelResponseState()
{
  _TDispID _dispid(*this, OLETEXT("CancelResponseState"), DISPID(63010));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::ClearRecurrencePattern()
{
  _TDispID _dispid(*this, OLETEXT("ClearRecurrencePattern"), DISPID(61605));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::GetRecurrencePattern(Outlook_xp::RecurrencePattern** RecurrencPattern/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetRecurrencePattern"), DISPID(61604));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::RecurrencePattern**)RecurrencPattern /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::RecurrencePattern* __fastcall
_TaskItemDispT<T>::GetRecurrencePattern(void)
{
  Outlook_xp::RecurrencePattern* RecurrencPattern;
  this->GetRecurrencePattern((Outlook_xp::RecurrencePattern**)&RecurrencPattern);
  return RecurrencPattern;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::MarkComplete()
{
  _TDispID _dispid(*this, OLETEXT("MarkComplete"), DISPID(62989));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, VARIANT fNoUI/*[in]*/, 
                           VARIANT fAdditionalTextDialog/*[in]*/, 
                           Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Respond"), DISPID(63009));
  TAutoArgs<3> _args;
  _args[1] = (int)Response /*[VT_USERDEFINED:0]*/;
  _args[2] = fNoUI /*[VT_VARIANT:0]*/;
  _args[3] = fAdditionalTextDialog /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskItemDispT<T>::Respond(Outlook_xp::OlTaskResponse Response/*[in]*/, VARIANT fNoUI/*[in]*/, 
                           VARIANT fAdditionalTextDialog/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  this->Respond(Response, fNoUI, fAdditionalTextDialog, (Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::Send()
{
  _TDispID _dispid(*this, OLETEXT("Send"), DISPID(61557));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::SkipRecurrence(VARIANT_BOOL* flg/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SkipRecurrence"), DISPID(63012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(flg /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::SkipRecurrence(void)
{
  VARIANT_BOOL flg;
  this->SkipRecurrence((VARIANT_BOOL*)&flg);
  return flg;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::StatusReport(LPDISPATCH* StatusReport/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StatusReport"), DISPID(62994));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StatusReport /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskItemDispT<T>::StatusReport(void)
{
  LPDISPATCH StatusReport;
  this->StatusReport((LPDISPATCH*)&StatusReport);
  return StatusReport;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_TaskItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_TaskItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_TaskItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_InternetCodepage(long* InternetCodepage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(InternetCodepage /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskItemDispT<T>::get_InternetCodepage(void)
{
  long InternetCodepage;
  this->get_InternetCodepage((long*)&InternetCodepage);
  return InternetCodepage;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_InternetCodepage(long InternetCodepage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternetCodepage"), DISPID(16350));
  TAutoArgs<1> _args;
  _args[1] = InternetCodepage /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_TaskItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestAcceptItem
// Interface: _TaskRequestAcceptItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestAcceptItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                     LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestAcceptItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                  Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->GetAssociatedTask(AddToTaskList, Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskRequestAcceptItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->GetAssociatedTask(AddToTaskList/*[in]*/, (Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestAcceptItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _TaskRequestAcceptItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063038-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_TaskRequestAcceptItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestAcceptItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestAcceptItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_TaskRequestAcceptItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestAcceptItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_TaskRequestAcceptItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestAcceptItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestAcceptItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestAcceptItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_TaskRequestAcceptItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestAcceptItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestAcceptItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestAcceptItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestAcceptItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                     LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestAcceptItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                  Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAssociatedTask"), DISPID(61460));
  TAutoArgs<1> _args;
  _args[1] = AddToTaskList /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskRequestAcceptItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_TaskRequestAcceptItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_TaskRequestAcceptItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_TaskRequestAcceptItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestAcceptItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestAcceptItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestDeclineItem
// Interface: _TaskRequestDeclineItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestDeclineItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                      LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestDeclineItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                   Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->GetAssociatedTask(AddToTaskList, Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskRequestDeclineItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->GetAssociatedTask(AddToTaskList/*[in]*/, (Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestDeclineItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _TaskRequestDeclineItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063039-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_TaskRequestDeclineItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestDeclineItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestDeclineItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_TaskRequestDeclineItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestDeclineItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_TaskRequestDeclineItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestDeclineItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestDeclineItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestDeclineItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_TaskRequestDeclineItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestDeclineItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestDeclineItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestDeclineItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestDeclineItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                      LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestDeclineItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                   Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAssociatedTask"), DISPID(61460));
  TAutoArgs<1> _args;
  _args[1] = AddToTaskList /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskRequestDeclineItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_TaskRequestDeclineItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_TaskRequestDeclineItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_TaskRequestDeclineItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestDeclineItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestDeclineItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestItem
// Interface: _TaskRequestItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_TaskRequestItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_TaskRequestItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_TaskRequestItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_TaskRequestItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_TaskRequestItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_TaskRequestItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_TaskRequestItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_TaskRequestItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_TaskRequestItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_TaskRequestItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_TaskRequestItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_TaskRequestItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_TaskRequestItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                               LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                            Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->GetAssociatedTask(AddToTaskList, Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskRequestItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->GetAssociatedTask(AddToTaskList/*[in]*/, (Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_TaskRequestItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_TaskRequestItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_TaskRequestItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_TaskRequestItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _TaskRequestItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063036-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_TaskRequestItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_TaskRequestItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_TaskRequestItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_TaskRequestItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_TaskRequestItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_TaskRequestItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_TaskRequestItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_TaskRequestItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_TaskRequestItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_TaskRequestItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_TaskRequestItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                               LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                            Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAssociatedTask"), DISPID(61460));
  TAutoArgs<1> _args;
  _args[1] = AddToTaskList /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskRequestItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_TaskRequestItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_TaskRequestItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_TaskRequestItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_TaskRequestItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// SmartIntf: TCOM_TaskRequestUpdateItem
// Interface: _TaskRequestUpdateItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  return (*this)->get_Application(Application);
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  OLECHECK(this->get_Application((Outlook_xp::_ApplicationPtr*)&Application));
  return Application;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  return (*this)->get_Class(Class);
}

template <class T> Outlook_xp::OlObjectClass __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  OLECHECK(this->get_Class((Outlook_xp::OlObjectClass*)&Class));
  return Class;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  return (*this)->get_Session(Session);
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  OLECHECK(this->get_Session((Outlook_xp::_NameSpacePtr*)&Session));
  return Session;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  return (*this)->get_Parent(Parent);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  OLECHECK(this->get_Parent((LPDISPATCH*)&Parent));
  return Parent;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  return (*this)->get_Actions(Actions);
}

template <class T> Outlook_xp::ActionsPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  OLECHECK(this->get_Actions((Outlook_xp::ActionsPtr*)&Actions));
  return Actions;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  return (*this)->get_Attachments(Attachments);
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  OLECHECK(this->get_Attachments((Outlook_xp::AttachmentsPtr*)&Attachments));
  return Attachments;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  return (*this)->get_BillingInformation(BillingInformation);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation = 0;
  OLECHECK(this->get_BillingInformation((BSTR*)&BillingInformation));
  return BillingInformation;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  return (*this)->set_BillingInformation(BillingInformation);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  return (*this)->get_Body(Body);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Body(void)
{
  BSTR Body = 0;
  OLECHECK(this->get_Body((BSTR*)&Body));
  return Body;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Body(BSTR Body/*[in]*/)
{
  return (*this)->set_Body(Body);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  return (*this)->get_Categories(Categories);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Categories(void)
{
  BSTR Categories = 0;
  OLECHECK(this->get_Categories((BSTR*)&Categories));
  return Categories;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  return (*this)->set_Categories(Categories);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  return (*this)->get_Companies(Companies);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Companies(void)
{
  BSTR Companies = 0;
  OLECHECK(this->get_Companies((BSTR*)&Companies));
  return Companies;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  return (*this)->set_Companies(Companies);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  return (*this)->get_ConversationIndex(ConversationIndex);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex = 0;
  OLECHECK(this->get_ConversationIndex((BSTR*)&ConversationIndex));
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  return (*this)->get_ConversationTopic(ConversationTopic);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic = 0;
  OLECHECK(this->get_ConversationTopic((BSTR*)&ConversationTopic));
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  return (*this)->get_CreationTime(CreationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  OLECHECK(this->get_CreationTime((DATE*)&CreationTime));
  return CreationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  return (*this)->get_EntryID(EntryID);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_EntryID(void)
{
  BSTR EntryID = 0;
  OLECHECK(this->get_EntryID((BSTR*)&EntryID));
  return EntryID;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  return (*this)->get_FormDescription(FormDescription);
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  OLECHECK(this->get_FormDescription((Outlook_xp::FormDescriptionPtr*)&FormDescription));
  return FormDescription;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  return (*this)->get_GetInspector(GetInspector);
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  OLECHECK(this->get_GetInspector((Outlook_xp::_InspectorPtr*)&GetInspector));
  return GetInspector;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  return (*this)->get_Importance(Importance);
}

template <class T> Outlook_xp::OlImportance __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  OLECHECK(this->get_Importance((Outlook_xp::OlImportance*)&Importance));
  return Importance;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  return (*this)->set_Importance(Importance);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  return (*this)->get_LastModificationTime(LastModificationTime);
}

template <class T> DATE __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  OLECHECK(this->get_LastModificationTime((DATE*)&LastModificationTime));
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  return (*this)->get_MAPIOBJECT(MAPIOBJECT);
}

template <class T> LPUNKNOWN __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  OLECHECK(this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT));
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  return (*this)->get_MessageClass(MessageClass);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MessageClass(void)
{
  BSTR MessageClass = 0;
  OLECHECK(this->get_MessageClass((BSTR*)&MessageClass));
  return MessageClass;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  return (*this)->set_MessageClass(MessageClass);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  return (*this)->get_Mileage(Mileage);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Mileage(void)
{
  BSTR Mileage = 0;
  OLECHECK(this->get_Mileage((BSTR*)&Mileage));
  return Mileage;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  return (*this)->set_Mileage(Mileage);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  return (*this)->get_NoAging(NoAging);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  OLECHECK(this->get_NoAging((VARIANT_BOOL*)&NoAging));
  return NoAging;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  return (*this)->set_NoAging(NoAging);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookInternalVersion(OutlookInternalVersion);
}

template <class T> long __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  OLECHECK(this->get_OutlookInternalVersion((long*)&OutlookInternalVersion));
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  return (*this)->get_OutlookVersion(OutlookVersion);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion = 0;
  OLECHECK(this->get_OutlookVersion((BSTR*)&OutlookVersion));
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  return (*this)->get_Saved(Saved);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  OLECHECK(this->get_Saved((VARIANT_BOOL*)&Saved));
  return Saved;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  return (*this)->get_Sensitivity(Sensitivity);
}

template <class T> Outlook_xp::OlSensitivity __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  OLECHECK(this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity));
  return Sensitivity;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  return (*this)->set_Sensitivity(Sensitivity);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Size(long* Size/*[out,retval]*/)
{
  return (*this)->get_Size(Size);
}

template <class T> long __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Size(void)
{
  long Size;
  OLECHECK(this->get_Size((long*)&Size));
  return Size;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  return (*this)->get_Subject(Subject);
}

template <class T> BSTR __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Subject(void)
{
  BSTR Subject = 0;
  OLECHECK(this->get_Subject((BSTR*)&Subject));
  return Subject;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  return (*this)->set_Subject(Subject);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  return (*this)->get_UnRead(UnRead);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  OLECHECK(this->get_UnRead((VARIANT_BOOL*)&UnRead));
  return UnRead;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  return (*this)->set_UnRead(UnRead);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  return (*this)->get_UserProperties(UserProperties);
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  OLECHECK(this->get_UserProperties((Outlook_xp::UserPropertiesPtr*)&UserProperties));
  return UserProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  return (*this)->Close(SaveMode);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Copy(Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestUpdateItemT<T>::Copy(void)
{
  LPDISPATCH Item;
  OLECHECK(this->Copy((LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Delete(void)
{
  return (*this)->Delete();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  return (*this)->Display(Modal);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                     LPDISPATCH* Item/*[out,retval]*/)
{
  return (*this)->Move(DestFldr, Item);
}

template <class T> LPDISPATCH __fastcall
TCOM_TaskRequestUpdateItemT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  OLECHECK(this->Move(DestFldr/*[in]*/, (LPDISPATCH*)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::PrintOut(void)
{
  return (*this)->PrintOut();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  return (*this)->SaveAs(Path, Type);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                  Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  return (*this)->GetAssociatedTask(AddToTaskList, Item);
}

template <class T> Outlook_xp::TaskItem* __fastcall
TCOM_TaskRequestUpdateItemT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  OLECHECK(this->GetAssociatedTask(AddToTaskList/*[in]*/, (Outlook_xp::TaskItem**)&Item));
  return Item;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  return (*this)->get_Links(Links);
}

template <class T> Outlook_xp::LinksPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  OLECHECK(this->get_Links((Outlook_xp::LinksPtr*)&Links));
  return Links;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  return (*this)->get_DownloadState(DownloadState);
}

template <class T> Outlook_xp::OlDownloadState __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  OLECHECK(this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState));
  return DownloadState;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::ShowCategoriesDialog(void)
{
  return (*this)->ShowCategoriesDialog();
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  return (*this)->get_ItemProperties(ItemProperties);
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  OLECHECK(this->get_ItemProperties((Outlook_xp::ItemPropertiesPtr*)&ItemProperties));
  return ItemProperties;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  return (*this)->get_MarkForDownload(MarkForDownload);
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  OLECHECK(this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload));
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  return (*this)->set_MarkForDownload(MarkForDownload);
}

template <class T> HRESULT __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  return (*this)->get_IsConflict(IsConflict);
}

template <class T> VARIANT_BOOL __fastcall
TCOM_TaskRequestUpdateItemT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  OLECHECK(this->get_IsConflict((VARIANT_BOOL*)&IsConflict));
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  _TaskRequestUpdateItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {00063037-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Application(Outlook_xp::_Application** Application/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(61440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Application**)Application /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_ApplicationPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_Application(void)
{
  Outlook_xp::_ApplicationPtr Application;
  this->get_Application(&Application);
  return Application;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Class(Outlook_xp::OlObjectClass* Class/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Class"), DISPID(61450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Class /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlObjectClass __fastcall
_TaskRequestUpdateItemDispT<T>::get_Class(void)
{
  Outlook_xp::OlObjectClass Class;
  this->get_Class((Outlook_xp::OlObjectClass*)&Class);
  return Class;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Session(Outlook_xp::_NameSpace** Session/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Session"), DISPID(61451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_NameSpace**)Session /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_NameSpacePtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_Session(void)
{
  Outlook_xp::_NameSpacePtr Session;
  this->get_Session(&Session);
  return Session;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Parent(LPDISPATCH* Parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(61441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Parent /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestUpdateItemDispT<T>::get_Parent(void)
{
  LPDISPATCH Parent;
  this->get_Parent((LPDISPATCH*)&Parent);
  return Parent;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Actions(Outlook_xp::Actions** Actions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actions"), DISPID(63511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Actions**)Actions /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ActionsPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_Actions(void)
{
  Outlook_xp::ActionsPtr Actions;
  this->get_Actions(&Actions);
  return Actions;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Attachments(Outlook_xp::Attachments** Attachments/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attachments"), DISPID(63509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Attachments**)Attachments /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::AttachmentsPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_Attachments(void)
{
  Outlook_xp::AttachmentsPtr Attachments;
  this->get_Attachments(&Attachments);
  return Attachments;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_BillingInformation(BSTR* BillingInformation/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(BillingInformation /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_BillingInformation(void)
{
  BSTR BillingInformation;
  this->get_BillingInformation((BSTR*)&BillingInformation);
  return BillingInformation;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_BillingInformation(BSTR BillingInformation/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BillingInformation"), DISPID(34101));
  TAutoArgs<1> _args;
  _args[1] = BillingInformation /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Body(BSTR* Body/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Body /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_Body(void)
{
  BSTR Body;
  this->get_Body((BSTR*)&Body);
  return Body;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Body(BSTR Body/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(37120));
  TAutoArgs<1> _args;
  _args[1] = Body /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Categories(BSTR* Categories/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Categories /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_Categories(void)
{
  BSTR Categories;
  this->get_Categories((BSTR*)&Categories);
  return Categories;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Categories(BSTR Categories/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Categories"), DISPID(36865));
  TAutoArgs<1> _args;
  _args[1] = Categories /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Companies(BSTR* Companies/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Companies /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_Companies(void)
{
  BSTR Companies;
  this->get_Companies((BSTR*)&Companies);
  return Companies;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Companies(BSTR Companies/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Companies"), DISPID(34107));
  TAutoArgs<1> _args;
  _args[1] = Companies /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_ConversationIndex(BSTR* ConversationIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationIndex"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationIndex /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_ConversationIndex(void)
{
  BSTR ConversationIndex;
  this->get_ConversationIndex((BSTR*)&ConversationIndex);
  return ConversationIndex;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_ConversationTopic(BSTR* ConversationTopic/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConversationTopic"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ConversationTopic /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_ConversationTopic(void)
{
  BSTR ConversationTopic;
  this->get_ConversationTopic((BSTR*)&ConversationTopic);
  return ConversationTopic;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_CreationTime(DATE* CreationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreationTime"), DISPID(12295));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CreationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestUpdateItemDispT<T>::get_CreationTime(void)
{
  DATE CreationTime;
  this->get_CreationTime((DATE*)&CreationTime);
  return CreationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_EntryID(BSTR* EntryID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EntryID"), DISPID(61470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(EntryID /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_EntryID(void)
{
  BSTR EntryID;
  this->get_EntryID((BSTR*)&EntryID);
  return EntryID;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_FormDescription(Outlook_xp::FormDescription** FormDescription/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormDescription"), DISPID(61589));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::FormDescription**)FormDescription /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::FormDescriptionPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_FormDescription(void)
{
  Outlook_xp::FormDescriptionPtr FormDescription;
  this->get_FormDescription(&FormDescription);
  return FormDescription;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_GetInspector(Outlook_xp::_Inspector** GetInspector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInspector"), DISPID(61502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::_Inspector**)GetInspector /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::_InspectorPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_GetInspector(void)
{
  Outlook_xp::_InspectorPtr GetInspector;
  this->get_GetInspector(&GetInspector);
  return GetInspector;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Importance(Outlook_xp::OlImportance* Importance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Importance /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlImportance __fastcall
_TaskRequestUpdateItemDispT<T>::get_Importance(void)
{
  Outlook_xp::OlImportance Importance;
  this->get_Importance((Outlook_xp::OlImportance*)&Importance);
  return Importance;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Importance(Outlook_xp::OlImportance Importance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Importance"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (int)Importance /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_LastModificationTime(DATE* LastModificationTime/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LastModificationTime"), DISPID(12296));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(LastModificationTime /*[VT_DATE:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DATE __fastcall
_TaskRequestUpdateItemDispT<T>::get_LastModificationTime(void)
{
  DATE LastModificationTime;
  this->get_LastModificationTime((DATE*)&LastModificationTime);
  return LastModificationTime;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_MAPIOBJECT(LPUNKNOWN* MAPIOBJECT/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MAPIOBJECT"), DISPID(61696));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MAPIOBJECT /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
_TaskRequestUpdateItemDispT<T>::get_MAPIOBJECT(void)
{
  LPUNKNOWN MAPIOBJECT;
  this->get_MAPIOBJECT((LPUNKNOWN*)&MAPIOBJECT);
  return MAPIOBJECT;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_MessageClass(BSTR* MessageClass/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MessageClass /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_MessageClass(void)
{
  BSTR MessageClass;
  this->get_MessageClass((BSTR*)&MessageClass);
  return MessageClass;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_MessageClass(BSTR MessageClass/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageClass"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = MessageClass /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Mileage(BSTR* Mileage/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Mileage /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_Mileage(void)
{
  BSTR Mileage;
  this->get_Mileage((BSTR*)&Mileage);
  return Mileage;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Mileage(BSTR Mileage/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mileage"), DISPID(34100));
  TAutoArgs<1> _args;
  _args[1] = Mileage /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_NoAging(VARIANT_BOOL* NoAging/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(NoAging /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestUpdateItemDispT<T>::get_NoAging(void)
{
  VARIANT_BOOL NoAging;
  this->get_NoAging((VARIANT_BOOL*)&NoAging);
  return NoAging;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_NoAging(VARIANT_BOOL NoAging/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NoAging"), DISPID(34062));
  TAutoArgs<1> _args;
  _args[1] = NoAging /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_OutlookInternalVersion(long* OutlookInternalVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookInternalVersion"), DISPID(34130));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookInternalVersion /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestUpdateItemDispT<T>::get_OutlookInternalVersion(void)
{
  long OutlookInternalVersion;
  this->get_OutlookInternalVersion((long*)&OutlookInternalVersion);
  return OutlookInternalVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_OutlookVersion(BSTR* OutlookVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OutlookVersion"), DISPID(34132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(OutlookVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_OutlookVersion(void)
{
  BSTR OutlookVersion;
  this->get_OutlookVersion((BSTR*)&OutlookVersion);
  return OutlookVersion;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Saved(VARIANT_BOOL* Saved/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Saved"), DISPID(61603));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Saved /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestUpdateItemDispT<T>::get_Saved(void)
{
  VARIANT_BOOL Saved;
  this->get_Saved((VARIANT_BOOL*)&Saved);
  return Saved;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Sensitivity(Outlook_xp::OlSensitivity* Sensitivity/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Sensitivity /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlSensitivity __fastcall
_TaskRequestUpdateItemDispT<T>::get_Sensitivity(void)
{
  Outlook_xp::OlSensitivity Sensitivity;
  this->get_Sensitivity((Outlook_xp::OlSensitivity*)&Sensitivity);
  return Sensitivity;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Sensitivity(Outlook_xp::OlSensitivity Sensitivity/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sensitivity"), DISPID(54));
  TAutoArgs<1> _args;
  _args[1] = (int)Sensitivity /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Size(long* Size/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Size"), DISPID(3592));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Size /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_TaskRequestUpdateItemDispT<T>::get_Size(void)
{
  long Size;
  this->get_Size((long*)&Size);
  return Size;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Subject(BSTR* Subject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Subject /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
_TaskRequestUpdateItemDispT<T>::get_Subject(void)
{
  BSTR Subject;
  this->get_Subject((BSTR*)&Subject);
  return Subject;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_Subject(BSTR Subject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subject"), DISPID(55));
  TAutoArgs<1> _args;
  _args[1] = Subject /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_UnRead(VARIANT_BOOL* UnRead/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(UnRead /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestUpdateItemDispT<T>::get_UnRead(void)
{
  VARIANT_BOOL UnRead;
  this->get_UnRead((VARIANT_BOOL*)&UnRead);
  return UnRead;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_UnRead(VARIANT_BOOL UnRead/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnRead"), DISPID(61468));
  TAutoArgs<1> _args;
  _args[1] = UnRead /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_UserProperties(Outlook_xp::UserProperties** UserProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserProperties"), DISPID(63510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::UserProperties**)UserProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::UserPropertiesPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_UserProperties(void)
{
  Outlook_xp::UserPropertiesPtr UserProperties;
  this->get_UserProperties(&UserProperties);
  return UserProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Close(Outlook_xp::OlInspectorClose SaveMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(61475));
  TAutoArgs<1> _args;
  _args[1] = (int)SaveMode /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Copy(LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Copy"), DISPID(61490));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestUpdateItemDispT<T>::Copy(void)
{
  LPDISPATCH Item;
  this->Copy((LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Delete()
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(61514));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Display(VARIANT Modal/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Display"), DISPID(61606));
  TAutoArgs<1> _args;
  _args[1] = Modal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/, 
                                     LPDISPATCH* Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Move"), DISPID(61492));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::MAPIFolder*)DestFldr /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Item /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
_TaskRequestUpdateItemDispT<T>::Move(Outlook_xp::MAPIFolder* DestFldr/*[in]*/)
{
  LPDISPATCH Item;
  this->Move(DestFldr, (LPDISPATCH*)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::PrintOut()
{
  _TDispID _dispid(*this, OLETEXT("PrintOut"), DISPID(61491));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(61512));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::SaveAs(BSTR Path/*[in]*/, VARIANT Type/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(61521));
  TAutoArgs<2> _args;
  _args[1] = Path /*[VT_BSTR:0]*/;
  _args[2] = Type /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/, 
                                                  Outlook_xp::TaskItem** Item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAssociatedTask"), DISPID(61460));
  TAutoArgs<1> _args;
  _args[1] = AddToTaskList /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::TaskItem**)Item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Outlook_xp::TaskItem* __fastcall
_TaskRequestUpdateItemDispT<T>::GetAssociatedTask(VARIANT_BOOL AddToTaskList/*[in]*/)
{
  Outlook_xp::TaskItem* Item;
  this->GetAssociatedTask(AddToTaskList, (Outlook_xp::TaskItem**)&Item);
  return Item;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_Links(Outlook_xp::Links** Links/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Links"), DISPID(62469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::Links**)Links /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::LinksPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_Links(void)
{
  Outlook_xp::LinksPtr Links;
  this->get_Links(&Links);
  return Links;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_DownloadState(Outlook_xp::OlDownloadState* DownloadState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DownloadState"), DISPID(64077));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)DownloadState /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlDownloadState __fastcall
_TaskRequestUpdateItemDispT<T>::get_DownloadState(void)
{
  Outlook_xp::OlDownloadState DownloadState;
  this->get_DownloadState((Outlook_xp::OlDownloadState*)&DownloadState);
  return DownloadState;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::ShowCategoriesDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowCategoriesDialog"), DISPID(64011));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_ItemProperties(Outlook_xp::ItemProperties** ItemProperties/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemProperties"), DISPID(64009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Outlook_xp::ItemProperties**)ItemProperties /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::ItemPropertiesPtr __fastcall
_TaskRequestUpdateItemDispT<T>::get_ItemProperties(void)
{
  Outlook_xp::ItemPropertiesPtr ItemProperties;
  this->get_ItemProperties(&ItemProperties);
  return ItemProperties;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_MarkForDownload(Outlook_xp::OlRemoteStatus* MarkForDownload/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)MarkForDownload /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Outlook_xp::OlRemoteStatus __fastcall
_TaskRequestUpdateItemDispT<T>::get_MarkForDownload(void)
{
  Outlook_xp::OlRemoteStatus MarkForDownload;
  this->get_MarkForDownload((Outlook_xp::OlRemoteStatus*)&MarkForDownload);
  return MarkForDownload;
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::set_MarkForDownload(Outlook_xp::OlRemoteStatus MarkForDownload/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkForDownload"), DISPID(34161));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkForDownload /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_TaskRequestUpdateItemDispT<T>::get_IsConflict(VARIANT_BOOL* IsConflict/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsConflict"), DISPID(64164));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(IsConflict /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> VARIANT_BOOL __fastcall
_TaskRequestUpdateItemDispT<T>::get_IsConflict(void)
{
  VARIANT_BOOL IsConflict;
  this->get_IsConflict((VARIANT_BOOL*)&IsConflict);
  return IsConflict;
}

// *********************************************************************//
// DispIntf:  ApplicationEvents_10
// Flags:     (4096) Dispatchable
// GUID:      {0006300E-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::ItemSend(LPDISPATCH Item/*[in]*/, VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* ItemSend */ DISPID(61442));
  TAutoArgs<2> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  _args[2] = Cancel /*[VT_BOOL:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::NewMail()
{
  _TDispID _dispid(/* NewMail */ DISPID(61443));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::Reminder(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(/* Reminder */ DISPID(61444));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::OptionsPagesAdd(Outlook_xp::PropertyPages* Pages/*[in]*/)
{
  _TDispID _dispid(/* OptionsPagesAdd */ DISPID(61445));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::PropertyPages*)Pages /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::Startup()
{
  _TDispID _dispid(/* Startup */ DISPID(61446));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ApplicationEvents_10DispT<T>::Quit()
{
  _TDispID _dispid(/* Quit */ DISPID(61447));
  return OleFunction(_dispid);
}

template <class T> void __fastcall
ApplicationEvents_10DispT<T>::AdvancedSearchComplete(Outlook_xp::Search* SearchObject/*[in]*/)
{
  _TDispID _dispid(/* AdvancedSearchComplete */ DISPID(64106));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Search*)SearchObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ApplicationEvents_10DispT<T>::AdvancedSearchStopped(Outlook_xp::Search* SearchObject/*[in]*/)
{
  _TDispID _dispid(/* AdvancedSearchStopped */ DISPID(64107));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::Search*)SearchObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ApplicationEvents_10DispT<T>::MAPILogonComplete()
{
  _TDispID _dispid(/* MAPILogonComplete */ DISPID(64144));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  ResultsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0006300D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ResultsEventsDispT<T>::ItemAdd(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(/* ItemAdd */ DISPID(61441));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ResultsEventsDispT<T>::ItemChange(LPDISPATCH Item/*[in]*/)
{
  _TDispID _dispid(/* ItemChange */ DISPID(61442));
  TAutoArgs<1> _args;
  _args[1] = Item /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ResultsEventsDispT<T>::ItemRemove()
{
  _TDispID _dispid(/* ItemRemove */ DISPID(61443));
  OleProcedure(_dispid);
}

// *********************************************************************//
// DispIntf:  _ViewsEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630A5-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
_ViewsEventsDispT<T>::ViewAdd(Outlook_xp::View* View/*[in]*/)
{
  _TDispID _dispid(/* ViewAdd */ DISPID(400));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::View*)View /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
_ViewsEventsDispT<T>::ViewRemove(Outlook_xp::View* View/*[in]*/)
{
  _TDispID _dispid(/* ViewRemove */ DISPID(64071));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::View*)View /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ReminderCollectionEvents
// Flags:     (4096) Dispatchable
// GUID:      {000630B2-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::BeforeReminderShow(VARIANT_BOOL* Cancel/*[in]*/)
{
  _TDispID _dispid(/* BeforeReminderShow */ DISPID(64147));
  TAutoArgs<1> _args;
  _args[1] = Cancel /*[VT_BOOL:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::ReminderAdd(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
{
  _TDispID _dispid(/* ReminderAdd */ DISPID(64148));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::ReminderChange(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
{
  _TDispID _dispid(/* ReminderChange */ DISPID(64149));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::ReminderFire(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
{
  _TDispID _dispid(/* ReminderFire */ DISPID(64150));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::ReminderRemove()
{
  _TDispID _dispid(/* ReminderRemove */ DISPID(64151));
  OleProcedure(_dispid);
}

template <class T> void __fastcall
ReminderCollectionEventsDispT<T>::Snooze(Outlook_xp::_Reminder* ReminderObject/*[in]*/)
{
  _TDispID _dispid(/* Snooze */ DISPID(64152));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Outlook_xp::_Reminder*)ReminderObject /*[VT_USERDEFINED:1]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DRecipientControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F025-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> VARIANT_BOOL __fastcall
_DRecipientControlDispT<T>::get_Enabled()
{
  _TDispID _dispid(*this, OLETEXT("Enabled"), DISPID(-514));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_Enabled(VARIANT_BOOL Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enabled"), DISPID(-514));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_BOOL:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> long __fastcall
_DRecipientControlDispT<T>::get_BackColor()
{
  _TDispID _dispid(*this, OLETEXT("BackColor"), DISPID(-501));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_BackColor(long Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BackColor"), DISPID(-501));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_I4:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> long __fastcall
_DRecipientControlDispT<T>::get_ForeColor()
{
  _TDispID _dispid(*this, OLETEXT("ForeColor"), DISPID(-513));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_ForeColor(long Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ForeColor"), DISPID(-513));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_I4:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> VARIANT_BOOL __fastcall
_DRecipientControlDispT<T>::get_ReadOnly()
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(-2147356664));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_ReadOnly(VARIANT_BOOL Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(-2147356664));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_BOOL:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> LPDISPATCH __fastcall
_DRecipientControlDispT<T>::get_Font()
{
  _TDispID _dispid(*this, OLETEXT("Font"), DISPID(-512));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_Font(LPDISPATCH Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Font"), DISPID(-512));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_DISPATCH:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> long __fastcall
_DRecipientControlDispT<T>::get_SpecialEffect()
{
  _TDispID _dispid(*this, OLETEXT("SpecialEffect"), DISPID(12));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DRecipientControlDispT<T>::set_SpecialEffect(long Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecialEffect"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_I4:0]*/;
  OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DRecipientControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {D87E7E17-6897-11CE-A6C0-00AA00608FAA}
// *********************************************************************//
// *********************************************************************//
// DispIntf:  _DDocSiteControl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F026-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> VARIANT_BOOL __fastcall
_DDocSiteControlDispT<T>::get_ReadOnly()
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(-2147356664));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DDocSiteControlDispT<T>::set_ReadOnly(VARIANT_BOOL Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(-2147356664));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_BOOL:0]*/;
  OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DDocSiteControlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {50BB9B50-811D-11CE-B565-00AA00608FAA}
// *********************************************************************//
// *********************************************************************//
// SmartIntf: TCOM_IDpxCtrl
// Interface: _IDpxCtrl
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOM_IDpxCtrlT<T>::get_StartDate(long* plStartDate/*[out,retval]*/)
{
  return (*this)->get_StartDate(plStartDate);
}

template <class T> long __fastcall
TCOM_IDpxCtrlT<T>::get_StartDate(void)
{
  long plStartDate;
  OLECHECK(this->get_StartDate((long*)&plStartDate));
  return plStartDate;
}

template <class T> HRESULT __fastcall
TCOM_IDpxCtrlT<T>::set_StartDate(long plStartDate/*[in]*/)
{
  return (*this)->set_StartDate(plStartDate);
}

template <class T> HRESULT __fastcall
TCOM_IDpxCtrlT<T>::get_EndDate(long* plEndDate/*[out,retval]*/)
{
  return (*this)->get_EndDate(plEndDate);
}

template <class T> long __fastcall
TCOM_IDpxCtrlT<T>::get_EndDate(void)
{
  long plEndDate;
  OLECHECK(this->get_EndDate((long*)&plEndDate));
  return plEndDate;
}

template <class T> HRESULT __fastcall
TCOM_IDpxCtrlT<T>::set_EndDate(long plEndDate/*[in]*/)
{
  return (*this)->set_EndDate(plEndDate);
}

// *********************************************************************//
// DispIntf:  _IDpxCtrl
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {0006F097-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> HRESULT __fastcall
_IDpxCtrlDispT<T>::get_StartDate(long* plStartDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartDate"), DISPID(64091));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plStartDate /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_IDpxCtrlDispT<T>::get_StartDate(void)
{
  long plStartDate;
  this->get_StartDate((long*)&plStartDate);
  return plStartDate;
}

template <class T> HRESULT __fastcall
_IDpxCtrlDispT<T>::set_StartDate(long plStartDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StartDate"), DISPID(64091));
  TAutoArgs<1> _args;
  _args[1] = plStartDate /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
_IDpxCtrlDispT<T>::get_EndDate(long* plEndDate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndDate"), DISPID(64092));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plEndDate /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
_IDpxCtrlDispT<T>::get_EndDate(void)
{
  long plEndDate;
  this->get_EndDate((long*)&plEndDate);
  return plEndDate;
}

template <class T> HRESULT __fastcall
_IDpxCtrlDispT<T>::set_EndDate(long plEndDate/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndDate"), DISPID(64092));
  TAutoArgs<1> _args;
  _args[1] = plEndDate /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DPageWrapCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F096-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> unsigned_long __fastcall
_DPageWrapCtrlDispT<T>::get_BackColor()
{
  _TDispID _dispid(*this, OLETEXT("BackColor"), DISPID(64090));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DPageWrapCtrlDispT<T>::set_BackColor(unsigned_long Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BackColor"), DISPID(64090));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_UI4:0]*/;
  OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DPageWrapCtrlEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {494F0971-DD96-11D2-AF70-006008AFF117}
// *********************************************************************//
// *********************************************************************//
// DispIntf:  _DInspectorCtrl
// Flags:     (4112) Hidden Dispatchable
// GUID:      {0006F09D-0000-0000-C000-000000000046}
// *********************************************************************//
template <class T> BSTR __fastcall
_DInspectorCtrlDispT<T>::get_URL()
{
  _TDispID _dispid(*this, OLETEXT("URL"), DISPID(64132));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DInspectorCtrlDispT<T>::set_URL(BSTR Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("URL"), DISPID(64132));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_BSTR:0]*/;
  OlePropertyPut(_dispid, _args);
}

template <class T> LPDISPATCH __fastcall
_DInspectorCtrlDispT<T>::get_Item()
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(64134));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> void __fastcall
_DInspectorCtrlDispT<T>::OnItemChange(LPDISPATCH pdispItem/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OnItemChange"), DISPID(64137));
  TAutoArgs<1> _args;
  _args[1] = pdispItem /*[VT_DISPATCH:0]*/;
  OleProcedure(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  _DInspectorEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {2D9C6D57-BD3C-4275-BED2-73F0EDC18CCE}
// *********************************************************************//
// *********************************************************************//
// DispIntf:  DDataSourceObject
// Flags:     (4112) Hidden Dispatchable
// GUID:      {11858B51-DE06-494E-915A-6CCEF17F7CB6}
// *********************************************************************//
template <class T> void __fastcall
DDataSourceObjectDispT<T>::set_OutlookItem(LPDISPATCH /*[VT_DISPATCH:0]*/ Value)
{
  _TDispID _dispid(*this, OLETEXT("OutlookItem"), DISPID(64096));
  TAutoArgs<1> _args;
  _args[1] = Value;
  OlePropertyPut(_dispid, _args);
}

template <class T> LPDISPATCH /*[VT_DISPATCH:0]*/ __fastcall
DDataSourceObjectDispT<T>::get_OutlookItem()
{
  _TDispID _dispid(*this, OLETEXT("OutlookItem"), DISPID(64096));
  TAutoArgs<0> _args;
  OlePropertyGet(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// The following typedefs expose classes (named CoCoClassName) that       
// provide static Create() and CreateRemote(LPWSTR machineName) methods   
// for creating an instance of an exposed object. These functions can     
// be used by client wishing to automate CoClasses exposed by this        
// typelibrary.                                                           
// *********************************************************************//

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SyncObject
// Interface: TCOM_SyncObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_SyncObject, _SyncObject, &CLSID_SyncObject, &IID__SyncObject> CoSyncObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Explorer
// Interface: TCOM_Explorer
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Explorer, _Explorer, &CLSID_Explorer, &IID__Explorer> CoExplorer;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Inspector
// Interface: TCOM_Inspector
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Inspector, _Inspector, &CLSID_Inspector, &IID__Inspector> CoInspector;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MailItem
// Interface: TCOM_MailItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_MailItem, _MailItem, &CLSID_MailItem, &IID__MailItem> CoMailItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AppointmentItem
// Interface: TCOM_AppointmentItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_AppointmentItem, _AppointmentItem, &CLSID_AppointmentItem, &IID__AppointmentItem> CoAppointmentItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MeetingItem
// Interface: TCOM_MeetingItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_MeetingItem, _MeetingItem, &CLSID_MeetingItem, &IID__MeetingItem> CoMeetingItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TaskItem
// Interface: TCOM_TaskItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_TaskItem, _TaskItem, &CLSID_TaskItem, &IID__TaskItem> CoTaskItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OutlookApplication
// Interface: TCOM_Application
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Application, _Application, &CLSID_OutlookApplication, &IID__Application> CoOutlookApplication;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ContactItem
// Interface: TCOM_ContactItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_ContactItem, _ContactItem, &CLSID_ContactItem, &IID__ContactItem> CoContactItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DistListItem
// Interface: TCOM_DistListItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_DistListItem, _DistListItem, &CLSID_DistListItem, &IID__DistListItem> CoDistListItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DocumentItem
// Interface: TCOM_DocumentItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_DocumentItem, _DocumentItem, &CLSID_DocumentItem, &IID__DocumentItem> CoDocumentItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Explorers
// Interface: TCOM_Explorers
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Explorers, _Explorers, &CLSID_Explorers, &IID__Explorers> CoExplorers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Inspectors
// Interface: TCOM_Inspectors
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Inspectors, _Inspectors, &CLSID_Inspectors, &IID__Inspectors> CoInspectors;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Folders
// Interface: TCOM_Folders
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Folders, _Folders, &CLSID_Folders, &IID__Folders> CoFolders;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Items
// Interface: TCOM_Items
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Items, _Items, &CLSID_Items, &IID__Items> CoItems;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : JournalItem
// Interface: TCOM_JournalItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_JournalItem, _JournalItem, &CLSID_JournalItem, &IID__JournalItem> CoJournalItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : NameSpace
// Interface: TCOM_NameSpace
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_NameSpace, _NameSpace, &CLSID_NameSpace, &IID__NameSpace> CoNameSpace;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : NoteItem
// Interface: TCOM_NoteItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_NoteItem, _NoteItem, &CLSID_NoteItem, &IID__NoteItem> CoNoteItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OutlookBarGroups
// Interface: TCOM_OutlookBarGroups
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_OutlookBarGroups, _OutlookBarGroups, &CLSID_OutlookBarGroups, &IID__OutlookBarGroups> CoOutlookBarGroups;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OutlookBarPane
// Interface: TCOM_OutlookBarPane
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_OutlookBarPane, _OutlookBarPane, &CLSID_OutlookBarPane, &IID__OutlookBarPane> CoOutlookBarPane;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OutlookBarShortcuts
// Interface: TCOM_OutlookBarShortcuts
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_OutlookBarShortcuts, _OutlookBarShortcuts, &CLSID_OutlookBarShortcuts, &IID__OutlookBarShortcuts> CoOutlookBarShortcuts;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PostItem
// Interface: TCOM_PostItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_PostItem, _PostItem, &CLSID_PostItem, &IID__PostItem> CoPostItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RemoteItem
// Interface: TCOM_RemoteItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_RemoteItem, _RemoteItem, &CLSID_RemoteItem, &IID__RemoteItem> CoRemoteItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ReportItem
// Interface: TCOM_ReportItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_ReportItem, _ReportItem, &CLSID_ReportItem, &IID__ReportItem> CoReportItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TaskRequestAcceptItem
// Interface: TCOM_TaskRequestAcceptItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_TaskRequestAcceptItem, _TaskRequestAcceptItem, &CLSID_TaskRequestAcceptItem, &IID__TaskRequestAcceptItem> CoTaskRequestAcceptItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TaskRequestDeclineItem
// Interface: TCOM_TaskRequestDeclineItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_TaskRequestDeclineItem, _TaskRequestDeclineItem, &CLSID_TaskRequestDeclineItem, &IID__TaskRequestDeclineItem> CoTaskRequestDeclineItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TaskRequestItem
// Interface: TCOM_TaskRequestItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_TaskRequestItem, _TaskRequestItem, &CLSID_TaskRequestItem, &IID__TaskRequestItem> CoTaskRequestItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TaskRequestUpdateItem
// Interface: TCOM_TaskRequestUpdateItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_TaskRequestUpdateItem, _TaskRequestUpdateItem, &CLSID_TaskRequestUpdateItem, &IID__TaskRequestUpdateItem> CoTaskRequestUpdateItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Results
// Interface: TCOM_Results
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Results, _Results, &CLSID_Results, &IID__Results> CoResults;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Views
// Interface: TCOM_Views
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Views, _Views, &CLSID_Views, &IID__Views> CoViews;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Reminder
// Interface: TCOM_Reminder
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Reminder, _Reminder, &CLSID_Reminder, &IID__Reminder> CoReminder;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Reminders
// Interface: TCOM_Reminders
// *********************************************************************//
typedef TCoClassCreatorT<TCOM_Reminders, _Reminders, &CLSID_Reminders, &IID__Reminders> CoReminders;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


#if !defined(__TLB_NO_EVENT_WRAPPERS) && defined(USING_ATLVCL)
// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SyncObject
// Event Interface : SyncObjectEvents
// *********************************************************************//
template <class T>
class TEvents_SyncObject : public IConnectionPointImpl<T,
                                                 &DIID_SyncObjectEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_SyncStart(void);
  void            Fire_Progress(Outlook_xp::OlSyncState State, BSTR Description, long Value, 
                                long Max);
  void            Fire_OnError(long Code, BSTR Description);
  void            Fire_SyncEnd(void);
protected:
  SyncObjectEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_SyncObject<T>::Fire_SyncStart(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SyncStart();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_SyncObject<T>::Fire_Progress(Outlook_xp::OlSyncState State, BSTR Description, long Value, 
                                     long Max)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Progress(State, Description, Value, Max);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_SyncObject<T>::Fire_OnError(long Code, BSTR Description)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.OnError(Code, Description);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_SyncObject<T>::Fire_SyncEnd(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SyncEnd();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Explorer
// Event Interface : ExplorerEvents_10
// *********************************************************************//
template <class T>
class TEvents_Explorer : public IConnectionPointImpl<T,
                                                 &DIID_ExplorerEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Activate(void);
  HRESULT         Fire_FolderSwitch(void);
  HRESULT         Fire_BeforeFolderSwitch(LPDISPATCH NewFolder, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ViewSwitch(void);
  HRESULT         Fire_BeforeViewSwitch(VARIANT NewView, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Deactivate(void);
  HRESULT         Fire_SelectionChange(void);
  HRESULT         Fire_Close(void);
  HRESULT         Fire_BeforeMaximize(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeMinimize(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeMove(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeSize(VARIANT_BOOL* Cancel);
  void            Fire_BeforeItemCopy(VARIANT_BOOL* Cancel);
  void            Fire_BeforeItemCut(VARIANT_BOOL* Cancel);
  void            Fire_BeforeItemPaste(VARIANT* ClipboardContent, Outlook_xp::MAPIFolder* Target, 
                                       VARIANT_BOOL* Cancel);
protected:
  ExplorerEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_Explorer<T>::Fire_Activate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Activate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_FolderSwitch(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.FolderSwitch();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeFolderSwitch(LPDISPATCH NewFolder, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeFolderSwitch(NewFolder, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_ViewSwitch(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ViewSwitch();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeViewSwitch(VARIANT NewView, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeViewSwitch(NewView, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_Deactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Deactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_SelectionChange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SelectionChange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_Close(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeMaximize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMaximize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeMinimize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMinimize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeMove(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMove(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Explorer<T>::Fire_BeforeSize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeSize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_Explorer<T>::Fire_BeforeItemCopy(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeItemCopy(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Explorer<T>::Fire_BeforeItemCut(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeItemCut(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Explorer<T>::Fire_BeforeItemPaste(VARIANT* ClipboardContent, Outlook_xp::MAPIFolder* Target, 
                                          VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeItemPaste(ClipboardContent, Target, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Inspector
// Event Interface : InspectorEvents_10
// *********************************************************************//
template <class T>
class TEvents_Inspector : public IConnectionPointImpl<T,
                                                 &DIID_InspectorEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Activate(void);
  HRESULT         Fire_Deactivate(void);
  HRESULT         Fire_Close(void);
  HRESULT         Fire_BeforeMaximize(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeMinimize(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeMove(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeSize(VARIANT_BOOL* Cancel);
protected:
  InspectorEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_Inspector<T>::Fire_Activate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Activate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_Deactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Deactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_Close(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_BeforeMaximize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMaximize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_BeforeMinimize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMinimize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_BeforeMove(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeMove(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_Inspector<T>::Fire_BeforeSize(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeSize(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : MailItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_MailItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MailItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                               VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_MailItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : AppointmentItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_AppointmentItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                              VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_AppointmentItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                      VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_AppointmentItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : MeetingItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_MeetingItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                          VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_MeetingItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                  VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_MeetingItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : TaskItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_TaskItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                               VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_TaskItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : OutlookApplication
// Event Interface : ApplicationEvents_10
// *********************************************************************//
template <class T>
class TEvents_OutlookApplication : public IConnectionPointImpl<T,
                                                 &DIID_ApplicationEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_ItemSend(LPDISPATCH Item, VARIANT_BOOL* Cancel);
  HRESULT         Fire_NewMail(void);
  HRESULT         Fire_Reminder(LPDISPATCH Item);
  HRESULT         Fire_OptionsPagesAdd(Outlook_xp::PropertyPages* Pages);
  HRESULT         Fire_Startup(void);
  HRESULT         Fire_Quit(void);
  void            Fire_AdvancedSearchComplete(Outlook_xp::Search* SearchObject);
  void            Fire_AdvancedSearchStopped(Outlook_xp::Search* SearchObject);
  void            Fire_MAPILogonComplete(void);
protected:
  ApplicationEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_ItemSend(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemSend(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_NewMail(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.NewMail();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_Reminder(LPDISPATCH Item)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reminder(Item);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_OptionsPagesAdd(Outlook_xp::PropertyPages* Pages)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.OptionsPagesAdd(Pages);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_Startup(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Startup();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_OutlookApplication<T>::Fire_Quit(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Quit();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_OutlookApplication<T>::Fire_AdvancedSearchComplete(Outlook_xp::Search* SearchObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AdvancedSearchComplete(SearchObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookApplication<T>::Fire_AdvancedSearchStopped(Outlook_xp::Search* SearchObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AdvancedSearchStopped(SearchObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookApplication<T>::Fire_MAPILogonComplete(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.MAPILogonComplete();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ContactItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_ContactItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                          VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ContactItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                  VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_ContactItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DistListItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_DistListItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                           VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DistListItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                   VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_DistListItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DocumentItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_DocumentItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                           VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_DocumentItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                   VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_DocumentItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Explorers
// Event Interface : ExplorersEvents
// *********************************************************************//
template <class T>
class TEvents_Explorers : public IConnectionPointImpl<T,
                                                 &DIID_ExplorersEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_NewExplorer(Outlook_xp::_Explorer* Explorer);
protected:
  ExplorersEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Explorers<T>::Fire_NewExplorer(Outlook_xp::_Explorer* Explorer)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.NewExplorer(Explorer);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Inspectors
// Event Interface : InspectorsEvents
// *********************************************************************//
template <class T>
class TEvents_Inspectors : public IConnectionPointImpl<T,
                                                 &DIID_InspectorsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_NewInspector(Outlook_xp::_Inspector* Inspector);
protected:
  InspectorsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Inspectors<T>::Fire_NewInspector(Outlook_xp::_Inspector* Inspector)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.NewInspector(Inspector);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Folders
// Event Interface : FoldersEvents
// *********************************************************************//
template <class T>
class TEvents_Folders : public IConnectionPointImpl<T,
                                                 &DIID_FoldersEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_FolderAdd(Outlook_xp::MAPIFolder* Folder);
  void            Fire_FolderChange(Outlook_xp::MAPIFolder* Folder);
  void            Fire_FolderRemove(void);
protected:
  FoldersEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Folders<T>::Fire_FolderAdd(Outlook_xp::MAPIFolder* Folder)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.FolderAdd(Folder);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Folders<T>::Fire_FolderChange(Outlook_xp::MAPIFolder* Folder)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.FolderChange(Folder);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Folders<T>::Fire_FolderRemove(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.FolderRemove();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Items
// Event Interface : ItemsEvents
// *********************************************************************//
template <class T>
class TEvents_Items : public IConnectionPointImpl<T,
                                                 &DIID_ItemsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_ItemAdd(LPDISPATCH Item);
  void            Fire_ItemChange(LPDISPATCH Item);
  void            Fire_ItemRemove(void);
protected:
  ItemsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Items<T>::Fire_ItemAdd(LPDISPATCH Item)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemAdd(Item);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Items<T>::Fire_ItemChange(LPDISPATCH Item)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemChange(Item);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Items<T>::Fire_ItemRemove(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemRemove();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : JournalItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_JournalItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                          VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_JournalItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                  VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_JournalItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : NameSpace
// Event Interface : NameSpaceEvents
// *********************************************************************//
template <class T>
class TEvents_NameSpace : public IConnectionPointImpl<T,
                                                 &DIID_NameSpaceEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_OptionsPagesAdd(Outlook_xp::PropertyPages* Pages, 
                                       Outlook_xp::MAPIFolder* Folder);
protected:
  NameSpaceEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_NameSpace<T>::Fire_OptionsPagesAdd(Outlook_xp::PropertyPages* Pages, 
                                           Outlook_xp::MAPIFolder* Folder)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.OptionsPagesAdd(Pages, Folder);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : OutlookBarGroups
// Event Interface : OutlookBarGroupsEvents
// *********************************************************************//
template <class T>
class TEvents_OutlookBarGroups : public IConnectionPointImpl<T,
                                                 &DIID_OutlookBarGroupsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_GroupAdd(Outlook_xp::OutlookBarGroup* NewGroup);
  void            Fire_BeforeGroupAdd(VARIANT_BOOL* Cancel);
  void            Fire_BeforeGroupRemove(Outlook_xp::OutlookBarGroup* Group, VARIANT_BOOL* Cancel);
protected:
  OutlookBarGroupsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_OutlookBarGroups<T>::Fire_GroupAdd(Outlook_xp::OutlookBarGroup* NewGroup)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.GroupAdd(NewGroup);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookBarGroups<T>::Fire_BeforeGroupAdd(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeGroupAdd(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookBarGroups<T>::Fire_BeforeGroupRemove(Outlook_xp::OutlookBarGroup* Group, 
                                                    VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeGroupRemove(Group, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : OutlookBarPane
// Event Interface : OutlookBarPaneEvents
// *********************************************************************//
template <class T>
class TEvents_OutlookBarPane : public IConnectionPointImpl<T,
                                                 &DIID_OutlookBarPaneEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_BeforeNavigate(Outlook_xp::OutlookBarShortcut* Shortcut, VARIANT_BOOL* Cancel);
  void            Fire_BeforeGroupSwitch(Outlook_xp::OutlookBarGroup* ToGroup, VARIANT_BOOL* Cancel);
protected:
  OutlookBarPaneEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_OutlookBarPane<T>::Fire_BeforeNavigate(Outlook_xp::OutlookBarShortcut* Shortcut, 
                                               VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeNavigate(Shortcut, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookBarPane<T>::Fire_BeforeGroupSwitch(Outlook_xp::OutlookBarGroup* ToGroup, 
                                                  VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeGroupSwitch(ToGroup, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : OutlookBarShortcuts
// Event Interface : OutlookBarShortcutsEvents
// *********************************************************************//
template <class T>
class TEvents_OutlookBarShortcuts : public IConnectionPointImpl<T,
                                                 &DIID_OutlookBarShortcutsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_ShortcutAdd(Outlook_xp::OutlookBarShortcut* NewShortcut);
  void            Fire_BeforeShortcutAdd(VARIANT_BOOL* Cancel);
  void            Fire_BeforeShortcutRemove(Outlook_xp::OutlookBarShortcut* Shortcut, 
                                            VARIANT_BOOL* Cancel);
protected:
  OutlookBarShortcutsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_OutlookBarShortcuts<T>::Fire_ShortcutAdd(Outlook_xp::OutlookBarShortcut* NewShortcut)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ShortcutAdd(NewShortcut);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookBarShortcuts<T>::Fire_BeforeShortcutAdd(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeShortcutAdd(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_OutlookBarShortcuts<T>::Fire_BeforeShortcutRemove(Outlook_xp::OutlookBarShortcut* Shortcut, 
                                                          VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeShortcutRemove(Shortcut, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : PostItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_PostItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_PostItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                               VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_PostItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : RemoteItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_RemoteItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                         VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_RemoteItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                 VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_RemoteItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ReportItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_ReportItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                         VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_ReportItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                 VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_ReportItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : TaskRequestAcceptItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_TaskRequestAcceptItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                                    VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestAcceptItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                            VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_TaskRequestAcceptItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : TaskRequestDeclineItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_TaskRequestDeclineItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                                     VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestDeclineItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                             VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_TaskRequestDeclineItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : TaskRequestItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_TaskRequestItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                              VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                      VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_TaskRequestItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : TaskRequestUpdateItem
// Event Interface : ItemEvents_10
// *********************************************************************//
template <class T>
class TEvents_TaskRequestUpdateItem : public IConnectionPointImpl<T,
                                                 &DIID_ItemEvents_10,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  HRESULT         Fire_Open(VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_CustomPropertyChange(BSTR Name);
  HRESULT         Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Close(VARIANT_BOOL* Cancel);
  HRESULT         Fire_PropertyChange(BSTR Name);
  HRESULT         Fire_Read(void);
  HRESULT         Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel);
  HRESULT         Fire_Send(VARIANT_BOOL* Cancel);
  HRESULT         Fire_Write(VARIANT_BOOL* Cancel);
  HRESULT         Fire_BeforeCheckNames(VARIANT_BOOL* Cancel);
  HRESULT         Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_AttachmentRead(Outlook_xp::Attachment* Attachment);
  HRESULT         Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, VARIANT_BOOL* Cancel);
  void            Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel);
protected:
  ItemEvents_10Disp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Open(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Open(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_CustomAction(LPDISPATCH Action, LPDISPATCH Response, 
                                                    VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomAction(Action, Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_CustomPropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CustomPropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Forward(LPDISPATCH Forward, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Forward(Forward, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Close(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Close(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_PropertyChange(BSTR Name)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChange(Name);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Read(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Read();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Reply(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Reply(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_ReplyAll(LPDISPATCH Response, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReplyAll(Response, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Send(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Send(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_Write(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Write(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_BeforeCheckNames(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeCheckNames(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_AttachmentAdd(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentAdd(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_AttachmentRead(Outlook_xp::Attachment* Attachment)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AttachmentRead(Attachment);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> HRESULT
TEvents_TaskRequestUpdateItem<T>::Fire_BeforeAttachmentSave(Outlook_xp::Attachment* Attachment, 
                                                            VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeAttachmentSave(Attachment, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
  return S_OK;
}

template <class T> void
TEvents_TaskRequestUpdateItem<T>::Fire_BeforeDelete(LPDISPATCH Item, VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeDelete(Item, Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _RecipientControl
// Event Interface : _DRecipientControlEvents
// *********************************************************************//
template <class T>
class TEvents__RecipientControl : public IConnectionPointImpl<T,
                                                 &DIID__DRecipientControlEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
protected:
  _DRecipientControlEventsDisp m_EventIntfObj;
};

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _DocSiteControl
// Event Interface : _DDocSiteControlEvents
// *********************************************************************//
template <class T>
class TEvents__DocSiteControl : public IConnectionPointImpl<T,
                                                 &DIID__DDocSiteControlEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
protected:
  _DDocSiteControlEventsDisp m_EventIntfObj;
};

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _PageWrapCtrl
// Event Interface : _DPageWrapCtrlEvents
// *********************************************************************//
template <class T>
class TEvents__PageWrapCtrl : public IConnectionPointImpl<T,
                                                 &DIID__DPageWrapCtrlEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
protected:
  _DPageWrapCtrlEventsDisp m_EventIntfObj;
};

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _InspectorCtrl
// Event Interface : _DInspectorEvents
// *********************************************************************//
template <class T>
class TEvents__InspectorCtrl : public IConnectionPointImpl<T,
                                                 &DIID__DInspectorEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
protected:
  _DInspectorEventsDisp m_EventIntfObj;
};

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Results
// Event Interface : ResultsEvents
// *********************************************************************//
template <class T>
class TEvents_Results : public IConnectionPointImpl<T,
                                                 &DIID_ResultsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_ItemAdd(LPDISPATCH Item);
  void            Fire_ItemChange(LPDISPATCH Item);
  void            Fire_ItemRemove(void);
protected:
  ResultsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Results<T>::Fire_ItemAdd(LPDISPATCH Item)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemAdd(Item);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Results<T>::Fire_ItemChange(LPDISPATCH Item)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemChange(Item);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Results<T>::Fire_ItemRemove(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ItemRemove();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Views
// Event Interface : _ViewsEvents
// *********************************************************************//
template <class T>
class TEvents_Views : public IConnectionPointImpl<T,
                                                 &DIID__ViewsEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_ViewAdd(Outlook_xp::View* View);
  void            Fire_ViewRemove(Outlook_xp::View* View);
protected:
  _ViewsEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Views<T>::Fire_ViewAdd(Outlook_xp::View* View)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ViewAdd(View);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Views<T>::Fire_ViewRemove(Outlook_xp::View* View)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ViewRemove(View);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : Reminders
// Event Interface : ReminderCollectionEvents
// *********************************************************************//
template <class T>
class TEvents_Reminders : public IConnectionPointImpl<T,
                                                 &DIID_ReminderCollectionEvents,
#if !defined(_TLB_DYNAMIC_CONNECTIONPOINT_ARRAY)
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
#else
                                                 CComDynamicArray>
#endif
{
public:
  void            Fire_BeforeReminderShow(VARIANT_BOOL* Cancel);
  void            Fire_ReminderAdd(Outlook_xp::_Reminder* ReminderObject);
  void            Fire_ReminderChange(Outlook_xp::_Reminder* ReminderObject);
  void            Fire_ReminderFire(Outlook_xp::_Reminder* ReminderObject);
  void            Fire_ReminderRemove(void);
  void            Fire_Snooze(Outlook_xp::_Reminder* ReminderObject);
protected:
  ReminderCollectionEventsDisp m_EventIntfObj;
};

template <class T> void
TEvents_Reminders<T>::Fire_BeforeReminderShow(VARIANT_BOOL* Cancel)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeforeReminderShow(Cancel);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Reminders<T>::Fire_ReminderAdd(Outlook_xp::_Reminder* ReminderObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReminderAdd(ReminderObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Reminders<T>::Fire_ReminderChange(Outlook_xp::_Reminder* ReminderObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReminderChange(ReminderObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Reminders<T>::Fire_ReminderFire(Outlook_xp::_Reminder* ReminderObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReminderFire(ReminderObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Reminders<T>::Fire_ReminderRemove(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ReminderRemove();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> void
TEvents_Reminders<T>::Fire_Snooze(Outlook_xp::_Reminder* ReminderObject)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Snooze(ReminderObject);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

#endif  //   __TLB_NO_EVENT_WRAPPERS

};     // namespace Outlook_xp

#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using  namespace Outlook_xp;
#endif

#pragma option pop

#endif // Outlook_XPH
