ICategory::AddRelationshipToCategory
Use this method to add a relationship from this category to another specified category.
Definition
HRESULT ICategory::AddRelationshipToCategory(BSTRstrRelatedCategoryName,BSTRstrRelationshipName,VARIANTstrRelationshipDescription);
Parameters
strRelatedCategoryName
[in] A BSTR that contains the name of the category to which a relationship is to be added.
strRelationshipName
[in] A BSTR that contains a name for the relationship.
strRelationshipDescription
[in, optional] A VARIANT of sub type String that contains an optional description for the relationship.
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_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist. |
E_CAT_INVALID_RELATION | 0x88980039 | The relationship was invalid. A category or product cannot be related to itself. |
E_CAT_INVALID_RELATION_DESC | 0x88980055 | The relationship description exceeded 256 characters. |
E_CAT_INVALID_RELATION_NAME | 0x88980054 | The relationship name exceeded 128 characters. |
E_CAT_RELATIONSHIP_EXISTS | 0x88980033 | The specified relationship already existed. |
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
A relationship must be given a name and may optionally be given a description. The description can include information that describes the nature of the relationship between the categories (for example, an "accessory" or "add-on"). Relationships are one way, that is, if category A has a relationship to category B that does not create a reciprocal relationship from category B to category A.
When multiple relationships are created between the same two categories, each relationship must have a unique name.
For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.