IProduct3::SetRelatedCategories Method [C++]

Use this method to update category relationships.

Definition

[C++]

HRESULT IProduct3::SetRelatedCategories(_Recordset*pRSRelatedCategories);

[Visual Basic]

Sub SetRelatedCategories(pRSRelatedCategories As _Recordset)

Parameters

  • pRSRelatedCategories[C++]
    [in] A reference to a Recordset object that contains the related categories.
  • pRSRelatedCategories[Visual Basic]
    A Recordset object that contains the related categories.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant Value Description
E_POINTER

[C++] 0x80004003

[Visual Basic] &H80004003

Invalid pointer.
E_CAT_CATEGORY_DOESNT_EXIST

[C++] 0x8898001C

[Visual Basic] &H8898001C

The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS

[C++] 0x88980045

[Visual Basic] &H88980045

The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES

[C++] 0x88980101

[Visual Basic] &H88980101

There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[Visual Basic] The recordset used for the pRSRelatedCategories parameter should be obtained from the RelatedCategories property.

[C++] The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedCategories method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedCategories method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedCategories is an existing recordset.
'It was obtained from the RelatedCategories property.

myProduct.SetRelatedCategories(pRSRelatedCategories)

See Also

[C++]Product Object

[Visual Basic]Product Object

Copyright © 2005 Microsoft Corporation.
All rights reserved.