I have done via several HP Openview C language APIs (from the SDK)including OVwDbCreateObject and OVwCreateSymbol.
I create a new menu item on HP Openview item (using a registartion file). The menu item action was mapped to "Adding an object" C callback routine. In the routine,
1. I created a field binding by getting the field id => OVwDbFieldNameToFieldId(<name of a HPOV field >), then allocated memory via malloc for OVwFieldBinding structure. finally stored field_id, field value, type, etc. into field binding structure.
2. Created object using field binding structure as input to OVxDbCreateObject.
3. Create symbol tied to the object using OVwCreateSymbol.
The Windows Developers Guide gives you snippets of code for using this.
Hope this helps.