ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IAcPiPropertyInspector reset method

0 REPLIES 0
Reply
Message 1 of 1
JJCJ_CAD
475 Views, 0 Replies

IAcPiPropertyInspector reset method

Hi group,

I have added a palette tab to the Properties palette at runtime,but it always shows a copy of the objects and properties of the default tab of paletteset (This default palette has a button from which I call the add pallette routine). How can I change the object selected in the created palette, or at least clear the selection?

This is my code.

void add_PropertiesTab() { // get the IAcPpPaletteSet interface pointer. IAcPpPaletteSet *pPropertiesPaletteSet; CoCreateInstance(CLSID_AcPpPaletteSet, NULL, CLSCTX_INPROC_SERVER, IID_IAcPpPaletteSet, (void**)&pPropertiesPaletteSet); // get a pointer to an IAcPpPalette object IAcPpPalette *pPropertiesPalette; CoCreateInstance(CLSID_AcPpPalette, NULL, CLSCTX_INPROC_SERVER, IID_IAcPpPalette, (void**)&pPropertiesPalette); // set the unique name of your palette. The embedded Property Inspector is implemented internally. BSTR namePalette = ::SysAllocString( L"New Palette" ); pPropertiesPalette->put_Name(namePalette); // add palette to paletteSet pPropertiesPaletteSet->AddPalette(pPropertiesPalette); // pointer to palette PropertyInspector IAcPiPropertyInspector *pPropertyInspector = NULL; pPropertiesPalette->get_InspectorControl(&pPropertyInspector); // To initialize the Property Inspector, call Reset() // Provide placeholder values for the two array arguments. // CComVariant objVarUnkArray, dynVarUnkArray; _variant_t pObjUnk; _variant_t pUnk; // Create a safe array of IUnknowns to object SAFEARRAYBOUND rgsaBound[1]; rgsaBound[0].lLbound = 0; rgsaBound[0].cElements = 1; SAFEARRAY* psaObj = SafeArrayCreate(VT_VARIANT, 1, rgsaBound); long index = 0; SafeArrayPutElement( psaObj, &index, &pObjUnk ); objVarUnkArray.vt = VT_ARRAY | VT_VARIANT; objVarUnkArray.parray = psaObj; // Create a safe array of corresponding dynprop managers // In this case, there is no dynprop manager, so make a dummy array SAFEARRAY* psaDynPropMan = SafeArrayCreate(VT_VARIANT, 1, rgsaBound); // Add a dummy element SafeArrayPutElement(psaDynPropMan, &index, &pUnk); _variant_t dynVarPropManArray; dynVarPropManArray.vt = VT_ARRAY | VT_VARIANT; dynVarPropManArray.parray = psaDynPropMan; // Create an array of IUnknowns to dynpropman array SAFEARRAY* psaDynpropUnk = SafeArrayCreate(VT_VARIANT, 1, rgsaBound); SafeArrayPutElement(psaDynpropUnk, &index, &dynVarPropManArray); dynVarUnkArray.vt = VT_ARRAY | VT_VARIANT; dynVarUnkArray.parray = psaDynpropUnk; // Load the object into the inspector control pPropertyInspector->Reset(&objVarUnkArray, &dynVarUnkArray, ACPI_CLEARCACHE_REFRESH); }

 

I have tested with empty and not empty arrays and the reset method returns no error but does nothing.

Any suggestions?

Thanks in advance.

 

Juan José Correa J.

0 REPLIES 0

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost