When using the Visual C++ wizard to add methods, create the methods with the parameter and return types exactly the same as shown below. The method declarations in the control class header should appear identical to the following, with the exception of any word wrapping resulting from this publication.
afx_msg BOOL AgentryInitialize(LPCTSTR initialValue, LPCTSTR formatString, BOOL readOnly, BOOL autoChangeFocus, long parentHwnd, VARIANT messageIDs); afx_msg void AgentryDestroy(); afx_msg void AgentryEnable(BOOL state); afx_msg BSTR AgentryGetValue(); afx_msg void AgentrySetFocus(long type); afx_msg void AgentryShow(BOOL state); afx_msg void AgentryUpdateRuleEvaluated(LPCTSTR ruleResult); afx_msg void AgentryUpdateScanData(BSTR scanResult); afx_msg BSTR AgentryGetSpecificValue(LONG opcode, VARIANT specificValue); afx_msg BSTR AgentryGetScriptValue(); afx_msg void AgentrySetScriptValue(BSTR str); afx_msg void AgentrySetActiveXControlHost(IUnknown* host); afx_msg LONG AgentryExecuteCommand(LPCTSTR str);
The methods section of the IDL file for the Agentry ActiveX interface should appear identical to the following:
methods: [id(1)] boolean AgentryInitialize(BSTR initialValue, BSTR formatString, boolean readOnly, boolean autoChangeFocus, long parentHwnd, VARIANT messageIDs); [id(2)] void AgentryDestroy(); [id(3)] void AgentryEnable(boolean state); [id(4)] BSTR AgentryGetValue(); [id(5)] void AgentrySetFocus(long type); [id(6)] void AgentryShow(boolean state); [id(7)] void AgentryUpdateRuleEvaluated(BSTR ruleResult); [id(8)] void AgentryUpdateScanData(BSTR scanResult); [id(9)] BSTR AgentryGetSpecificValue(LONG opcode, VARIANT specificValue); [id(10)] BSTR AgentryGetScriptValue(); [id(11)] void AgentrySetScriptValue(BSTR str); [id(12)] void AgentrySetActiveXControlHost(IUnknown* host); [id(13)] LONG AgentryExecuteCommand(BSTR str)