Provides access to COM object properties, methods, and events through early binding.
GETINTERFACE(oObject [, cIID | cInterface[, cTypelib | cProgID]]) |
Parameters
- oObject
- Specifies the target COM object.
- cIID
- Specifies the GUID of the target interface of oObject. cIID can be an interface such as "IContextState" or it can be a GUID, such as "{94631BEC-EE81-479A-AE64-A6CFC37B4799}". If it's "IDispatch", then GetInterface() returns an IDispatch (late-bound) reference to the object. If cIID is not specified, then GetInterface() will return the early binding interface for the object.
- cInterface
- Specifies the interface name.
- cTypelib
- Specifies the name of the type library containing the oObject class.
- cProgID
- Specifies the name of the program to be used to lookup the type library.
Returns
COM Object Interface reference
Remarks
GetInterface(В ) applies only to COM objects. If you use native Visual FoxPro objects, GetInterface(В ) generates an error. GetInterface(В ) returns an early-bound Object reference.
When a DLL is built on a WindowsВ 95, WindowsВ 98, or Windows Me platform, Visual FoxPro does not include the type library inside the DLL. When you use GETINTERFACE(В ) and refer to a DLL built on one of these platforms, you must use the Type Library name instead of the DLL name as in the following code:
В | Copy Code |
---|---|
oX = GETINTERFACE(x, "Imyclass", "myclass1.TLB") |
You can use the following code for a DLL built on Windows XP, Windows 2000, or WindowsВ NT:
В | Copy Code |
---|---|
oX = GETINTERFACE(x, "Imyclass", "myclass1.DLL") |
Example
The following code example provides a method you can use in your Visual FoxPro COM server to handle transactions in a COM+ application. This sample requires that you add the COM server containing this code to a COM+ application before a client calls it.
В | Copy Code |
---|---|
LOCAL oMTX, oContext, oContextState LOCAL lTxnState, lGetTxnState, lDone, lGetDone lGetDone = .F. && initialize setting lGetTxnState = 0 && initialize setting oMTX = CREATEOBJECT("MTXAS.APPSERVER.1") oContext = oMTX.GetObjectContext() oContextState = GetInterface(oContext,"IContextState") * Handle activation setting (Doneness) * Values: .T. - Deactivate, .F. - Leave activated lDone = .T. oContextState.SetDeactivateOnReturn(lDone) oContextState.GetDeactivateOnReturn(@lGetDone) * Handle transaction setting (Consistency) * Values: 0 - commit, 1 - abort lTxnState = 1 oContextState.SetMyTransactionVote(lTxnState) oContextState.GetMyTransactionVote(@lGetTxnState) |