IListManager::Subtract
Use this method to subtract one mailing list from another mailing list, placing the result in a third list.
Definition
HRESULT IListManager::Subtract(VARIANTsrcList,VARIANTlessList,VARIANTresList,longerrLimit,BOOLbAsync,VARIANT*pvarOpID);
Parameters
srcList
[in] A VARIANT that contains the ID or name of the list from which elements will be subtracted.
lessList
[in] A VARIANT that contains the ID or name of the less list.
resList
[in] A VARIANT that contains the ID or name of the list into which the results of the subtraction operation will be placed.
errLimit
[in] A long that is not used.
bAsync
[in] A BOOL that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
pvarOpID
[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
Return Values
This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.
Error Values
This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.
The following table shows the custom COM errors that this method can return.
Constant | Value | Description |
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation. |
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation. |
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist. |
E_LM_MAILABLE_REQUIRED | 0x8C400011 | The operation requires a mailable list and the specified list is not a mailable list. |
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled. |
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation. |
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized. |
Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.
Remarks
The result list must exist prior to calling the method, however, any data in the list will be overwritten.
This method keys on the rcp_email column and thus, both the source (srcList parameter) and less (lessList parameter) lists must be Mailable lists (LISTFLAG_MAILABLE set to True). Records from the source list that do not have duplicate e-mail addresses (rcp_email)**in the less list are copied to the result (resList parameter) list. Any existing data in the result list is deleted.
The parameter pvarOpID contains valid data only if the subtraction operation is performed asynchronously.
For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.