![]() |
AnyConnect Secure Mobility Client COM API 5.1.9.113
|
00001 /************************************************************************** 00002 * Copyright (c) 2008, 2022 Cisco Systems, Inc. 00003 * All Rights Reserved. Cisco Highly Confidential. 00004 *************************************************************************** 00005 * 00006 * File: VpnApi.idl -- interface definition of the AnyConnect 00007 * VPN API COM wrapper. 00008 * Author: Vincent E. Parla 00009 * Date: 07/14/2008 00010 * 00011 **************************************************************************/ 00012 00013 /** @defgroup COM_API COM API 00014 * This is the interface definition of the AnyConnect Secure Mobility VPN API COM wrapper. 00015 * Users of the COM API will #import vpnapi.dll to obtain the interface, method 00016 * and enumerator defintions. 00017 * The .idl file is included in documentation for reference purposes only. 00018 * 00019 * NOTE: This interface specification is not immutable and can be broken by future versions. 00020 * It is expected that your code will be recompiled / refactored to match the version 00021 * of client installed on the system. 00022 * 00023 * @{ 00024 */ 00025 import "oaidl.idl"; 00026 import "ocidl.idl"; 00027 import "api.h"; /*obtain the api enumerators to embed in the type library*/ 00028 import "VpnApiStringEnums.h"; /*obtain the string table enumerators to embed in the type library*/ 00029 import "RegValueUpgradeCodes.h";/*obtain the upgrade code enumerator to embed in the type library*/ 00030 00031 cpp_quote("#ifdef __cplusplus") 00032 cpp_quote(" using namespace VpnApiStringEnums;") 00033 cpp_quote("#endif //__cplusplus") 00034 00035 interface IVpnApiEvents; //forward declaration of the IVpnApiEvents callback interface. 00036 interface IVpnStats; //forward declaration of the IVpnStats interface. 00037 interface IConnectPromptInfo; //forward declaration of the IConnectPromptInfo interface. 00038 interface IPromptEntry; //forward declaration of the IPromptEntry interface. 00039 interface IPreferenceInfo; //forward declaration of the IPreferenceInfo interface. 00040 interface IPreference; //forward declaration of the IPreference interface. 00041 00042 interface IStringCollection; //forward declaration of the string collection utility interface 00043 interface IInterfaceCollection; //forward declaration of the interface collection utilty interface. 00044 00045 /** 00046 * interface IVpnApi 00047 * Cisco Secure Client - AnyConnect VPN API IDispatch interface specification. This is the VPN API COM Server instantiated by the user via CoCreateInstance. 00048 */ 00049 [ 00050 object, 00051 uuid(027E04AD-347B-4E63-9E10-00BACB3970C8), 00052 oleautomation, 00053 nonextensible, 00054 dual, 00055 helpstring("Cisco Secure Client - AnyConnect VPN API IVpnApi Interface specification. This is the VPN API COM Server instantiated by the user via CoCreateInstance."), 00056 pointer_default(unique) 00057 ] 00058 interface IVpnApi : IDispatch 00059 { 00060 [id(1), helpstring("method Register. This is a convenience method for attaching one or more callback interface(s) without using the IConnectionPoint interface directly.")] 00061 HRESULT Register([in] IVpnApiEvents * pVpnApiEvents, [out, retval] DWORD * pdwCookie); 00062 00063 [id(2), helpstring("method Unregister. This is a convenience method for detaching a callback interface without using the IConnectionPoint interface directly.")] 00064 HRESULT Unregister([in] DWORD dwCookie); 00065 00066 [id(3), helpstring("method Attach. This is the first method that is called to configure the VPN API engine. An event callback IVpnApiEvents is assumed to be already associated, prior to calling this method. Languages like C# would use this method after wiring up the events.")] 00067 HRESULT Attach([in, defaultvalue(ClientType_GUI)] enum ClientType clientType, 00068 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bRequestFullCapabilities, 00069 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bSuppressAutoConnect); 00070 00071 [id(4), helpstring("method Detach. This is the last method that is called to terminate the VPN API engine. Languages like C# would use this method after wiring up the events.")] 00072 HRESULT Detach(); 00073 00074 [id(5), helpstring("method RegisterAndAttach. This method combines Register and Attach into a single convenience method. This supports only one IVpnApiEvents instance per IVpnApi instance. Languages that handle connection points under the covers, like C#, would not use this method, but would instead simply use Attach().")] 00075 HRESULT RegisterAndAttach([in] IVpnApiEvents * pVpnApiEvents, 00076 [in, defaultvalue(ClientType_GUI)] enum ClientType clientType, 00077 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bRequestFullCapabilities, 00078 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bSuppressAutoConnect); 00079 00080 [id(6), helpstring("method UnregisterAndDetach. This method combines Unregister and Detach into a single convenience method. This supports only one IVpnApiEvents instance per IVpnApi instance. Languages that handle connection points under the covers, like C#, would not use this method, but would instead simply use Detach().")] 00081 HRESULT UnregisterAndDetach(); 00082 00083 [id(7), propput, helpstring("property EnableConsumerDrivenEventModel. Call this before attaching, to enable a consumer-driven event model. This enables the IVpnApiEvents::VpnEventAvailableNotification. It's required to always enable this as the old event model is deprecated.")] 00084 HRESULT EnableConsumerDrivenEventModel([in] VARIANT_BOOL bEnable); 00085 00086 [id(8), helpstring("method ProcessEvents. Use this method if the consumer-driven event model is configured and an IVpnApiEvents::VpnEventAvailableNotification was fired.")] 00087 HRESULT ProcessEvents(); 00088 00089 [id (9), propget, helpstring("property HasFullCapabilities. Indicates whether this instance of the VPN API engine is the principal instance.")] 00090 HRESULT HasFullCapabilities([out, retval] VARIANT_BOOL* pbHasFullCapabilities); 00091 00092 [id(10), propget, helpstring("property IsConnected. Indicates that there is a VPN connection.")] 00093 HRESULT IsConnected([out, retval] VARIANT_BOOL* pbIsConnected); 00094 00095 [id(11), propget, helpstring("property IsVPNServiceAvailable. Indicates that the VPN Service is active. (This is also delivered to the IVpnApiEvents callback.)")] 00096 HRESULT IsVPNServiceAvailable([out, retval] VARIANT_BOOL* pbIsVPNServiceAvailable); 00097 00098 [id(12), propget, helpstring("property HostNames. Obtains a collection of hostname strings from the profile.")] 00099 HRESULT HostNames([out, retval] IStringCollection** ppIStringCollection); 00100 00101 [id(13), propget, helpstring("property DefaultHostName. Obtains the default hostname from the profile or the last hostname from a previous connection.")] 00102 HRESULT DefaultHostName([out, retval] BSTR* pstrGetDefaultHostName); 00103 00104 [id(14), helpstring("method ConnectVpn. Connects to the secure gateway using a hostname or ip address.")] 00105 HRESULT ConnectVpn([in] BSTR strHostNameOrAddress); 00106 00107 [id(15), helpstring("method DisconnectVpn. Disconnects from the secure gateway VPN session")] 00108 HRESULT DisconnectVpn(); 00109 00110 [id(16), helpstring("method GetState. Causes the VPN API engine to invoke the IVpnApiEvents::VpnStateNotification method to deliver the current state.")] 00111 HRESULT GetState(); 00112 00113 [id(17), helpstring("method ResetStats. Resets the the internal stat counters back to initial values.")] 00114 HRESULT ResetStats(); 00115 00116 [id(18), helpstring("method StartStats. Starts the automatic stats notification mechanism. This results in IVpnApiEvents::VpnStatsNotification being fired periodically.")] 00117 HRESULT StartStats(); 00118 00119 [id(19), helpstring("method StopStats. Stops the automatic stats notification mechanism.")] 00120 HRESULT StopStats(); 00121 00122 [id(20), helpstring("method UserSubmit. The caller must release the IConnectPromptInfo object, obtained from IVpnApiEvents::VpnUserPromptNotification, prior to calling this method.")] 00123 HRESULT UserSubmit(); 00124 00125 [id(21), propget, helpstring("property Preferences. Obtains a collection of IPreference interface instances.")] 00126 HRESULT Preferences([out, retval] IPreferenceInfo** ppPreferenceInfo); 00127 00128 [id(22), helpstring("method SavePreferences. The caller must release the IPreferenceInfo object prior to calling this method.")] 00129 HRESULT SavePreferences(); 00130 00131 [id(23), propput, helpstring("property BannerResponse. Call this with the user response to the banner.")] 00132 HRESULT BannerResponse([in] VARIANT_BOOL bResponse); 00133 00134 [id(24), propget, helpstring("property OperatingMode. Indicates if an operating mode is enabled.")] 00135 HRESULT IsOperatingMode([in] enum OperatingMode eOperatingMode, [out, retval] VARIANT_BOOL* pbIsEnabled); 00136 00137 [id(25), helpstring("method GetStats. Causes the VPN API engine to invoke the IVpnApiEvents::VpnStatsNotification method to deliver the current stats.")] 00138 HRESULT GetStats(); 00139 00140 [id(26), propget, helpstring("property LastVpnError. Indicates the last error seen while establishing VPN.")] 00141 HRESULT LastVpnError([out, retval] enum VPNError* peLastVpnError); 00142 00143 [id(27), propput, helpstring("property CertBlockedResponse. Call this with the user response to the CertBlockedCB.")] 00144 HRESULT CertBlockedResponse([in] VARIANT_BOOL bUnblock); 00145 00146 [id(28), propput, helpstring("property CertWarningResponse. Call this with the user response to the CertWarningCB.")] 00147 HRESULT CertWarningResponse([in] VARIANT_BOOL bConnect, [in] VARIANT_BOOL bImport); 00148 00149 [id(29), propput, helpstring("property PreConnectReminderResponse. Call this with the user response to the pre-connect reminder.")] 00150 HRESULT PreConnectReminderResponse([in] VARIANT_BOOL bResponse); 00151 00152 [id(99), propget, helpstring("property VpnStatsTranslatedLabel. Allows for pre-fetching translated labels for various VPN statistics prior to obtaining an IVpnStats interface")] 00153 HRESULT VpnStatsTranslatedLabel([in] enum VPNStatsTag eVPNStatsTag, [out, retval] BSTR* pstrTranslatedLabel); 00154 00155 00156 //methods used to obtain the registry key and value to query to determine when a vpn software upgrade is completed. 00157 // 00158 [id(998), propget, helpstring("property UpgradeRegistryKeyName. returns the name of the registry key to monitor for core software upgrade completions.")] 00159 HRESULT UpgradeRegistryKeyName([out, retval] BSTR* pstrUpgradeRegistryKeyName); 00160 [id(999), propget, helpstring("property UpgradeRegistryValueName. returns the name of the registry value to query for core software upgrade completions when the key change is notified.")] 00161 HRESULT UpgradeRegistryValueName([out, retval] BSTR* pstrUpgradeRegistryValueName); 00162 }; 00163 00164 /** 00165 * interface IVpnApiEvents 00166 * Cisco Secure Client - AnyConnect VPN API Event Callback IDispatch interface specification. This is the VPN API COM Event Callback interface that a developer implements and passes to the COM Server using the Attach, RegisterAndAttach, or indirectly via connection points in languages such as C#. 00167 */ 00168 [ 00169 object, 00170 uuid(5D446DC1-A494-4D3D-B5AD-0ADACB3B3EE3), 00171 oleautomation, 00172 nonextensible, 00173 dual, 00174 helpstring("Cisco Secure Client - AnyConnect VPN API IVpnApiEvents callback Interface specification. A user of the VpnApi COM Server provides this interface to receive event notifications."), 00175 pointer_default(unique) 00176 ] 00177 interface IVpnApiEvents : IDispatch 00178 { 00179 [id(1000), helpstring("method VpnStatsNotification. Callback containing a IVpnStats object to be queried for stats.")] 00180 HRESULT VpnStatsNotification([in] IVpnStats * pVpnStats); 00181 00182 [id(1001), helpstring("method VpnStateNotification. Callback containing the state of the VPN session")] 00183 HRESULT VpnStateNotification([in] enum VPNState eState, [in] enum VPNSubState eSubState, [in] BSTR strState); 00184 00185 [id(1002), helpstring("method VpnBannerNotification. Callback containing a Banner notification string.")] 00186 HRESULT VpnBannerNotification([in] BSTR strBannerMessage); 00187 00188 [id(1003), helpstring("method VpnStateNotification. Callback containing a notice pertaining to the VPN session")] 00189 HRESULT VpnNoticeNotification([in] BSTR strNoticeMessage, [in] enum MessageType eMessageType); 00190 00191 [id(1004), helpstring("method VpnExitNotification. Callback containing a notice indicating to shutdown the VPN API release to COM component.")] 00192 HRESULT VpnExitNotification([in] BSTR strExitMessage, [in] long exitCode); 00193 00194 [id(1005), helpstring("method VpnServiceReadyNotification. Callback indicating the VPN Service is online")] /*this could be a prop_put*/ 00195 HRESULT VpnServiceReadyNotification(); 00196 00197 [id(1006), helpstring("method VpnUserPromptNotification. Callback indicating the VPN Service is online")] /*this could be a prop_put*/ 00198 HRESULT VpnUserPromptNotification([in] IConnectPromptInfo * pConnectPromptInfo); 00199 00200 [id(1007), helpstring("method VpnWMHintNotification. Callback containing UI behavior hint and reason.")] 00201 HRESULT VpnWMHintNotification([in] enum WMHint eHint, [in] enum WMHintReason eReason); 00202 00203 [id(1008), helpstring("method VpnWebLaunchHostNotification. Callback containing the Active Host pertaining to the VPN session")] 00204 HRESULT VpnWebLaunchHostNotification([in] BSTR strActiveHost); 00205 00206 [id(1009), helpstring("method VpnEventAvailableNotification. Callback indicating an API Event is available to consume. This notification is sent only if configured to use the consumer-driven event model. A COM user then calls IVpnApi::ProcessEvents.")]/*this could be a prop_put*/ 00207 HRESULT VpnEventAvailableNotification(); 00208 00209 [id(1010), helpstring("method VpnCertBlockedNotification. Callback indicating strUntrustedServer is an untrusted server.")] 00210 HRESULT VpnCertBlockedNotification([in] BSTR strUntrustedServer); 00211 00212 [id(1011), helpstring("method VpnCertWarningNotification. Callback indicating strUntrustedServer is an untrusted server because of the certificate errors in pCertErrors.")] 00213 HRESULT VpnCertWarningNotification([in] BSTR strUntrustedServer, [in] IStringCollection *pCertErrors, [in] VARIANT_BOOL bImportAllowed); 00214 00215 [id(1012), helpstring("method VpnPreConnectReminderNotification. Callback containing a pre-connect reminder notification string.")] 00216 HRESULT VpnPreConnectReminderNotification([in] BSTR strPreConnectReminderMessage); 00217 }; 00218 00219 /** 00220 * interface IVpnStats 00221 * Cisco Secure Client - AnyConnect VPN API Statistics IDispatch interface specification. This is a non-creatable interface that is passed to via an Event Callback method and represents a VPN Statistics object. 00222 */ 00223 [ 00224 object, 00225 uuid(42B1B1F3-5E1E-4d5d-9C59-2E484C726CE6), 00226 oleautomation, 00227 nonextensible, 00228 dual, 00229 helpstring("Cisco Secure Client - AnyConnect VPN API IVpnStats Interface specification."), 00230 pointer_default(unique) 00231 ] 00232 interface IVpnStats : IDispatch 00233 { 00234 [id(100), propget, helpstring("property SecureRoutes. Obtains a collection of IRouteInfo interface instances.")] 00235 HRESULT SecureRoutes([out, retval] IInterfaceCollection** ppSecureRouteInfoCollection); 00236 00237 [id(101), propget, helpstring("property NonsecureRoutes. Obtains a collection of IRouteInfo interface instances.")] 00238 HRESULT NonsecureRoutes([out, retval] IInterfaceCollection** ppNonsecureRouteInfoCollection); 00239 00240 [id(102), propget, helpstring("property ProtocolInfo. Obtains a collection of IProtocolInfo interface instances.")] 00241 HRESULT ProtocolInfo([out, retval] IInterfaceCollection** ppProtocolInfoCollection); 00242 00243 [id(103), propget, helpstring("property FirewallInfo. Obtains a collection of IFirewallInfo interface instances.")] 00244 HRESULT FirewallInfo([out, retval] IInterfaceCollection** ppFirewallInfoCollection); 00245 00246 [id(DISPID_VALUE), propget, helpstring("property StatValue. Obtains the value for various VPN statistics associated IVpnStats interface. (NOTE: This is functionally the same as GetVpnStatsTranslatedLabel.)")] 00247 HRESULT StatValue([in] enum VPNStatsTag eVPNStatsTag, [out,retval] BSTR* pstrStatValue); 00248 00249 [id(104), propget, helpstring("property TranslatedLabel. Obtains the translated labels for various VPN statistics associated IVpnStats interface. (NOTE: This is functionally the same as GetVpnStatsTranslatedLabel.)")] 00250 HRESULT TranslatedLabel([in] enum VPNStatsTag eVPNStatsTag, [out,retval] BSTR* pstrTranslatedLabel); 00251 }; 00252 00253 /** 00254 * interface IConnectPromptInfo 00255 * Cisco Secure Client - AnyConnect VPN API Connection Prompt IDispatch interface specification. This is a non-creatable interface that is passed to via an Event Callback method and represents a VPN Connect Prompt Information object. 00256 */ 00257 [ 00258 object, 00259 uuid(811A60FE-D3E0-4fe6-B627-30723A93554C), 00260 oleautomation, 00261 nonextensible, 00262 dual, 00263 helpstring("Cisco Secure Client - AnyConnect VPN API IConnectPromptInfo Interface specification."), 00264 pointer_default(unique) 00265 ] 00266 interface IConnectPromptInfo : IDispatch 00267 { 00268 [id(200), propget, helpstring("property ConnectPromptType. The type of prompt entry.")] 00269 HRESULT ConnectPromptType([out, retval] enum ConnectPromptType* peConnectPromptType); 00270 00271 [id(201), propget, helpstring("property CountPromptEntry. The number of prompt entries in the collection.")] 00272 HRESULT CountPromptEntry([out, retval] unsigned long* pulEntryCount); 00273 00274 [id(202), propget, helpstring("property Message. Provides a message associated with the credentials being entered.")] 00275 HRESULT Message([out, retval] BSTR* pMessage); 00276 00277 [id(203), propget, helpstring("property PromptNames. Obtains a collection of prompt name strings if available.")] 00278 HRESULT PromptNames([out, retval] IStringCollection** ppPromptNamesCollection); 00279 00280 [id(DISPID_VALUE), propget, helpstring("property PromptEntry. Obtains a prompt entry based on a tag value provided.")] 00281 HRESULT PromptEntry([in] BSTR strPromptName, [out, retval] IPromptEntry ** ppPromptEntry); 00282 00283 [id(205), propget, helpstring("property PromptEntries. Obtains a collection of prompt entries.")] 00284 HRESULT PromptEntries([out, retval] IInterfaceCollection** ppPromptEntriesCollection); 00285 00286 [id(206), propget, helpstring("property HasAuthenticationError. Indicates whether an authentication error has occurred.")] 00287 HRESULT HasAuthenticationError([out, retval] VARIANT_BOOL* pbAuthErr); 00288 00289 [id(207), propget, helpstring("property SubmitButtonName. Provides the name to be used for the Submit Button.")] 00290 HRESULT SubmitButtonName([out, retval] BSTR* pstrSubmitButton); 00291 00292 [id(208), propget, helpstring("property HasEnrollmentCA. Indicates an Enrollment CA is available.")] 00293 HRESULT HasEnrollmentCA([out, retval] VARIANT_BOOL* pbCAAvailable); 00294 00295 [id(209), propput, helpstring("property UseEnrollmentCA. Inform the VPN API to use the Enrollement CA.")] 00296 HRESULT UseEnrollmentCA([in] VARIANT_BOOL bUseCA); 00297 00298 [id(210), propput, helpstring("property TunnelGroup. Allows the setting of the currently selected Tunnel group")] 00299 HRESULT TunnelGroup([in] BSTR strSelectedTunnelGroup); 00300 00301 [id(211), propget, helpstring("property IsCanceled. Indicates if the user has canceled the prompt.")] 00302 HRESULT IsCanceled([out, retval] VARIANT_BOOL* pbIsCanceled); 00303 00304 [id(212), propput, helpstring("property Canceled. Inform the VPNAPI that the user has canceled the prompt.")] 00305 HRESULT Canceled([in] VARIANT_BOOL bIsCanceled); 00306 }; 00307 00308 /** 00309 * interface IVpnStats 00310 * Cisco Secure Client - AnyConnect VPN API Prompt Entry IDispatch interface specification. This is a non-creatable interface that is contains Prompt Entry information. 00311 */ 00312 [ 00313 object, 00314 uuid(548A1F06-AECE-4506-8ABB-5E3D3A99B67B), 00315 oleautomation, 00316 nonextensible, 00317 dual, 00318 helpstring("Cisco Secure Client - AnyConnect VPN API IPromptEntry Interface specification."), 00319 pointer_default(unique) 00320 ] 00321 interface IPromptEntry : IDispatch 00322 { 00323 [id(301), propget, helpstring("property Value. Gets the current value for the prompt entry.")] 00324 HRESULT Value([out, retval] BSTR* pstrValue); 00325 00326 [id(301), propput, helpstring("property Value. Sets a value explicitly for a prompt entry.")] 00327 HRESULT Value([in] BSTR strValue); 00328 00329 [id(302), propget, helpstring("property PromptName. This is the non-translated prompt.")] 00330 HRESULT PromptName([out, retval] BSTR* pstrPromptName); 00331 00332 [id(303), propget, helpstring("property PromptLabel. This is the translated prompt.")] 00333 HRESULT PromptLabel([out, retval] BSTR* pstrPromptLabel); 00334 00335 [id(304), propget, helpstring("property PromptType. Obtains the type of prompt (for example, password), etc.")] 00336 HRESULT PromptType([out, retval] enum PromptType* pPromptType); 00337 00338 [id(305), propget, helpstring("property IsEnabled. Indicates whether this should be user editable.")] 00339 HRESULT IsEnabled([out, retval] VARIANT_BOOL* pbIsEnabled); 00340 00341 [id(306), propget, helpstring("property IsVisible. Indicates whether this should be displayed to the user.")] 00342 HRESULT IsVisible([out, retval] VARIANT_BOOL* pbIsVisible); 00343 00344 [id(307), propget, helpstring("property ValueOptions. Obtains a collection of value option strings.")] 00345 HRESULT ValueOptions([out, retval] IStringCollection** ppValueOptionsCollection); 00346 00347 [id(308), propget, helpstring("property IsEntryGroup")] 00348 HRESULT IsEntryGroup([out, retval] VARIANT_BOOL* pbIsEntryGroup); 00349 }; 00350 00351 /** 00352 * interface IRouteInfo 00353 * Cisco Secure Client - AnyConnect VPN API Route Information IDispatch interface specification. This is a non-creatable interface that represents a Route Information object. 00354 */ 00355 [ 00356 object, 00357 uuid(02E2AE5E-A8C8-458e-92B0-B72B322B623C), 00358 oleautomation, 00359 nonextensible, 00360 dual, 00361 helpstring("Cisco Secure Client - AnyConnect VPN API IRouteInfo Interface specification."), 00362 pointer_default(unique) 00363 ] 00364 interface IRouteInfo : IDispatch 00365 { 00366 [id(401), propget, helpstring("property Network route")] 00367 HRESULT Network([out, retval] BSTR* pstrNetwork); 00368 00369 [id(402), propget, helpstring("property Subnet for the route.")] 00370 HRESULT Subnet([out, retval] BSTR* pstrSubnet); 00371 }; 00372 00373 /** 00374 * interface IProtocolInfo 00375 * Cisco Secure Client - AnyConnect VPN API Protocol Information IDispatch interface specification. This is a non-creatable interface that represents a Protocol Information object. 00376 */ 00377 [ 00378 object, 00379 uuid(A0D63CA4-68E6-44e8-8738-19D6E4BC82BE), 00380 oleautomation, 00381 nonextensible, 00382 dual, 00383 helpstring("Cisco Secure Client - AnyConnect VPN API IProtocolInfo Interface specification."), 00384 pointer_default(unique) 00385 ] 00386 interface IProtocolInfo : IDispatch 00387 { 00388 [id(501), propget, helpstring("property ProtocolLabel. Obtain a protocol label string from the enumerated type.")] 00389 HRESULT ProtocolLabel([in] enum ProtocolInfoTag eProtocolInfoTag, 00390 [out, retval] BSTR* pstrProtocolLabel); 00391 00392 [id(DISPID_VALUE), propget, helpstring("property ProtocolValue. Obtain a protocol value string from the enumerated type.")] 00393 HRESULT ProtocolValue([in] enum ProtocolInfoTag eProtocolInfoTag, 00394 [out, retval] BSTR* pstrProtocolValue); 00395 00396 [id(503), propget, helpstring("property IsActive. Indicates if the protocol is active.")] 00397 HRESULT IsActive([out, retval] VARIANT_BOOL * pbIsActive); 00398 }; 00399 00400 /** 00401 * interface IFirewallInfo 00402 * Cisco Secure Client - AnyConnect VPN API Firewall Information IDispatch interface specification. This is a non-creatable interface that represents a Firweall Information object containing firewall rule information. 00403 */ 00404 [ 00405 object, 00406 uuid(F71DC93F-C07D-44a3-95B4-864177AE0F7E), 00407 oleautomation, 00408 nonextensible, 00409 dual, 00410 helpstring("Cisco Secure Client - AnyConnect VPN API IFirewallInfo Interface specification."), 00411 pointer_default(unique) 00412 ] 00413 interface IFirewallInfo : IDispatch 00414 { 00415 [id(541), propget, helpstring("property Permission of a firewall rule")] 00416 HRESULT Permission([out, retval] BSTR* pstrPermission); 00417 00418 [id(542), propget, helpstring("property Protocol for a firewall rule.")] 00419 HRESULT Protocol([out, retval] BSTR* pstrProtocol); 00420 00421 [id(543), propget, helpstring("property Interface for a firewall rule.")] 00422 HRESULT Interface([out, retval] BSTR* pstrInterface); 00423 00424 [id(544), propget, helpstring("property Source Port Range for a firewall rule.")] 00425 HRESULT SrcPortRange([out, retval] BSTR* pstrSrcPortRange); 00426 00427 [id(545), propget, helpstring("property Destination Port Range for a firewall rule.")] 00428 HRESULT DstPortRange([out, retval] BSTR* pstrDstPortRange); 00429 00430 [id(546), propget, helpstring("property Destination Address for a firewall rule.")] 00431 HRESULT DstAddr([out, retval] BSTR* pstrDstAddr); 00432 }; 00433 00434 00435 /** 00436 * interface IPreferenceInfo 00437 * Cisco Secure Client - AnyConnect VPN API User Preference Information IDispatch interface specification. This is a non-creatable interface that represents a User Preference Information object. 00438 */ 00439 [ 00440 object, 00441 uuid(3E73BCCD-C4E4-4842-AB58-9F973E7D226F), 00442 oleautomation, 00443 nonextensible, 00444 dual, 00445 helpstring("Cisco Secure Client - AnyConnect VPN API IPreferenceInfo Interface specification."), 00446 pointer_default(unique) 00447 ] 00448 interface IPreferenceInfo : IDispatch 00449 { 00450 [id(601), propget, helpstring("property CountPreferences. The number of preferences available.")] 00451 HRESULT CountPreferences([out, retval] unsigned long * pulCountPreferences); 00452 00453 [id(DISPID_VALUE), propget, helpstring("property Preference. Gets the instance of an IPreference interface associated with the preference tag.")] 00454 HRESULT Preference([in] enum PreferenceId ePreferenceId, [out, retval] IPreference** ppPreference); 00455 00456 [id(603), propget, helpstring("property Preferences. Obtains a collection of IPreference interface instances.")] 00457 HRESULT Preferences([out, retval] IInterfaceCollection** ppPreferencesCollection); 00458 00459 [id(604), propget, helpstring("property PreferenceHeading. The heading string for preferences.")] 00460 HRESULT PreferenceHeading([out, retval] BSTR * pstrPreferenceHeading); 00461 }; 00462 00463 /** 00464 * interface IPreference 00465 * Cisco Secure Client - AnyConnect VPN API Usser Preference IDispatch interface specification. This is a non-creatable interface that represents a User Preference object. 00466 */ 00467 [ 00468 object, 00469 uuid(01F3D78C-AC49-48d1-8782-0EB481961341), 00470 oleautomation, 00471 nonextensible, 00472 dual, 00473 helpstring("Cisco Secure Client - AnyConnect VPN API IPreference Interface specification."), 00474 pointer_default(unique) 00475 ] 00476 interface IPreference : IDispatch 00477 { 00478 [id(701), propget, helpstring("property PreferenceValue. Gets the current value for the preference entry.")] 00479 HRESULT PreferenceValue([out, retval] BSTR* pstrPreferenceValue); 00480 00481 [id(701), propput, helpstring("property PreferenceValue. Sets the value explicitly for a preference entry.")] 00482 HRESULT PreferenceValue([in] BSTR strPreferenceValue); 00483 00484 [id(703), propget, helpstring("property PreferenceId. Gets the preference identifier enumeration value for the preference entry.")] 00485 HRESULT PreferenceId([out, retval] enum PreferenceId * pPreferenceId); 00486 00487 [id(704), propget, helpstring("property Children. Obtains a collection of IPreference interface instances that are sub-entries of this preference.")] 00488 HRESULT Children([out, retval] IInterfaceCollection** ppChildPreferencesCollection); 00489 00490 [id(705), propget, helpstring("property PromptEntry. Obtains a prompt entry instance associated with this preference.")] 00491 HRESULT PromptEntry([out, retval] IPromptEntry ** ppPromptEntry); 00492 }; 00493 00494 00495 //Collection interfaces// 00496 00497 /** 00498 * interface IStringCollection 00499 * Cisco Secure Client - AnyConnect VPN API String Collection IDispatch interface specification. This is a non-creatable interface that represents a Collection of Strings. 00500 */ 00501 [ 00502 object, 00503 uuid(6292ECAC-42CD-43ea-A96C-0C072772B4BE), 00504 oleautomation, 00505 nonextensible, 00506 dual, 00507 helpstring("Cisco Secure Client - AnyConnect VPN API Utility String Collection Interface specification."), 00508 pointer_default(unique) 00509 ] 00510 interface IStringCollection : IDispatch 00511 { 00512 [id(DISPID_NEWENUM), propget, helpstring("method _NewEnum. Obtains a new String Collection enumerator interface.")] 00513 HRESULT _NewEnum([out, retval] IUnknown** ppUnk); 00514 00515 [id(DISPID_VALUE), propget, helpstring("property Item. Obtains a string object in the collection. NOTE: collections are 1's based indexing.")] 00516 HRESULT Item([in] long nIndex, [out, retval] BSTR* pString); 00517 00518 [id(1), propget, helpstring("property Count. Obtains the count of the number of objects in the collection.")] 00519 HRESULT Count([out, retval] long * pCount); 00520 }; 00521 00522 /** 00523 * interface IStringCollection 00524 * Cisco Secure Client - AnyConnect VPN API Interface Collection IDispatch interface specification. This is a non-creatable interface that represents a Collection of Interface instances of objects. 00525 */ 00526 [ 00527 object, 00528 uuid(E0854B5E-16D3-46b5-8767-420EB1F48041), 00529 oleautomation, 00530 nonextensible, 00531 dual, 00532 helpstring("Cisco Secure Client - AnyConnect VPN API Utility IUnknown Collection Interface specification."), 00533 pointer_default(unique) 00534 ] 00535 interface IInterfaceCollection : IDispatch 00536 { 00537 [id(DISPID_NEWENUM), propget, helpstring("property _NewEnum. Obtains a new Interface Collection enumerator interface.")] 00538 HRESULT _NewEnum([out, retval] IUnknown** ppUnk); 00539 00540 [id(DISPID_VALUE), propget, helpstring("property Item. Obtains an IUnknown interface for an object in the collection. The user would then QI for the actual interface they wanted to obtain. NOTE: collections are 1's based indexing.")] 00541 HRESULT Item([in] long nIndex, [out, retval] IUnknown** ppInterface); 00542 00543 [id(1), propget, helpstring("property Count. Obtains the count of the number of objects in the collection.")] 00544 HRESULT Count([out, retval] long * pCount); 00545 }; 00546 00547 /////////////////////////////////////// VPN API Type Library ////////////////////////////////////// 00548 [ 00549 uuid(C15C09AE-FCCE-9221-FFA2-7465FEAAE55A), 00550 version(1.0), 00551 helpstring("Cisco Secure Client - AnyConnect VPN API 1.0 Type Library") 00552 ] 00553 library VpnApiLib 00554 { 00555 importlib("stdole32.tlb"); 00556 importlib("stdole2.tlb"); 00557 00558 [ 00559 uuid(C15C0F4F-DDFB-4591-AD53-C9A71C9C15C0), 00560 helpstring("VpnApi Class") 00561 ] 00562 coclass VpnApi 00563 { 00564 [default] interface IVpnApi; 00565 [default, source] dispinterface IVpnApiEvents; 00566 }; 00567 00568 interface IRouteInfo; 00569 interface IProtocolInfo; 00570 interface IFirewallInfo; 00571 enum RegValueUpgradeCodesTag; 00572 } 00573 00574 /** @} */