Use HeapMem.Pkg //**************************************************************************** // $Module type: CLASS // $Module name: cEntryIdsArray // $Author : VO // Created : 04/25/00 @ 8:41 // // Description // // $Rev History // 04/25/00 VO Module header created //**************************************************************************** Class cEntryIdsArray Is A Array //**************************************************************************** // $Module type: FUNCTION // $Module name: AddRecipientId // $Author : Vincent Oorsprong // Created : 06/01/99 @ 6:52 // // Description // This function is used to add an item and returns the itemnumber // // $Rev History // 06/01/99 VO Module header created //**************************************************************************** Function AddRecipientId String sEntryId Integer iLength Returns Integer Integer iItems bOk Handle hHeap Pointer lpsEntryId pEntryId If (iLength > 0) Begin Move (GetProcessHeap ()) To hHeap If (hHeap <> 0) Begin Move (HeapAlloc (hHeap, 0, iLength)) To pEntryId If (pEntryId <> 0) Begin GetAddress Of sEntryId To lpsEntryId Move (MemCopy (pEntryId, lpsEntryId, iLength)) To bOk End End End Get Item_Count To iItems Set Array_Value Item iItems To pEntryId Set Array_Value Item (iItems + 1) To iLength Function_Return iItems End_Function // AddRecipientId //**************************************************************************** // $Module type: FUNCTION // $Module name: ReceiverEntryId // $Author : VO // Created : 04/25/00 @ 9:03 // // Description // This function converts the pointer from entry-id to a string and returns // this value // // $Rev History // 04/25/00 VO Module header created //**************************************************************************** Function ReceiverEntryId Integer iEntryIdsItem Returns String String sEntryId Integer bOk iLength Pointer pEntryId lpsEntryId Handle hHeap Get Integer_Value Item iEntryIdsItem To pEntryId If (pEntryId <> 0) Begin Move (GetProcessHeap ()) To hHeap If (hHeap <> 0) Begin Get Integer_Value Item (iEntryIdsItem + 1) To iLength ZeroString iLength To sEntryId GetAddress Of sEntryId To lpsEntryId Move (MemCopy (lpsEntryId, pEntryId, iLength)) To bOk End End Function_Return sEntryId End_Function // ReceiverEntryId //**************************************************************************** // $Module type: PROCEDURE // $Module name: DoDeleteEntryId // $Author : VO // Created : 04/24/00 @ 5:15 // // Description // This method will delete two of the entryid items since they are no // longer valid // // $Rev History // 04/24/00 VO Module header created //**************************************************************************** Procedure DoDeleteEntryId Integer iEntryIdsItem Integer iCount bOk Pointer pEntryId Handle hHeap Get Integer_Value Item iEntryIdsItem To pEntryId If (pEntryId <> 0) Begin Move (GetProcessHeap ()) To hHeap If (hHeap <> 0) Begin Move (HeapFree (hHeap, 0, pEntryId)) To bOk Set Array_Value Item iEntryIdsItem To 0 End End For iCount From 1 To 2 Send Delete_Item iEntryIdsItem Loop End_Procedure // DoDeleteEntryId //**************************************************************************** // $Module type: PROCEDURE // $Module name: DoDeleteHeapEntryIds // $Author : VO // Created : 04/24/00 @ 8:41 // // Description // This method will delete the heapmemory entries // // $Rev History // 04/24/00 VO Module header created //**************************************************************************** Procedure DoDeleteHeapEntryIds Integer iItem iItems bOk Pointer pEntryId Handle hHeap Move (Item_Count (Self) - 1) To iItems For iItem From 0 To iItems Get Integer_Value Item iItem To pEntryId If (pEntryId <> 0) Begin Move (GetProcessHeap ()) To hHeap If (hHeap <> 0) Begin Move (HeapFree (hHeap, 0, pEntryId)) To bOk Set Array_Value Item iItem To 0 End End Increment iItem Loop End_Procedure // DoDeleteHeapEntryIds //**************************************************************************** // $Module type: PROCEDURE // $Module name: Delete_Data // $Author : VO // Created : 04/24/00 @ 8:40 // // Description // Before forwarding loop thru the heapmem pointers and free them // // $Rev History // 04/24/00 VO Module header created //**************************************************************************** Procedure Delete_Data Send DoDeleteHeapEntryIds Forward Send Delete_Data End_Procedure // Delete_Data //**************************************************************************** // $Module type: PROCEDURE // $Module name: Destroy_Object // $Author : VO // Created : 04/25/00 @ 10:47 // // Description // When the object gets destroyed free the heap memory allocated // // $Rev History // 04/25/00 VO Module header created //**************************************************************************** Procedure Destroy_Object Send DoDeleteHeapEntryIds Forward Send Destroy_Object End_Procedure // Destroy_Object End_Class // cEntryIdsArray