|
|
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Подскажите, как сделать в фоксе COM-сервер с нестандартным интерфейсом есть оборудование со своим ПО. для работы с ним разработчики рекомендуют писать свои COM-сервера, учитывая, чтог на С++ я не силен, решил, как обычно, писать на VFP, но выяснилось что у COM-сервера требуется иной интерфейс... стандартные IDispatch или IUnknown ему не нужен.... вопрос - каким образом написать на фоксе ком-сервер исользующий строго определенный интерфей????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 10:09:25 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Что ты имеешь в виду под «нестандартный интерфейс» ? С прямым доступ к твоим методам ? Ну так и будет такой доступ. Для программиста на VFP базовый интерфейс IUnknow не доступен, IDispath будет всегда, если нужно можно заюзать. Создаешь как обычно класс, например так * Допустим что это программа Test Define Class MyClass As Session OlePublic Procedure test_Proc Lparameters test_str As Variant * тут твоя реализация RETURN test_str Endproc Enddefine Создаешь потом при билде COM сервер. Потом можешь OLEVIEW из VS посмотреть, в системе он у тебя будет доступен как = Имя файла программы.имя класса Доступ к нему так : Test.MyClass Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 11:55:40 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
поясню вопрос: Есь какое-то железо со своим ПО, для связи с внешними данными, (в моем случае с MS SQL) разработчики сделали механизм COM-объектов. в описании, каким должен быть COM, они настоятельно рекомендовали сделать реализацию строго определенного интерфейса, со своими функциями..... ьтак вот я и не знаю - КАК этот интерфес на фоксе нарисовать....... делать СОМ на С++ не хочу /да и не умею :о) /, т.к. там идет исключительно обработка данных из SQL и DBF...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 12:07:12 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
2WertAndrey Может наконец объясните - чего надо то сделать ? Что за "не стандартный" интерфейс ? Пример из требований. А то как-то не внятно объясняете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 12:17:54 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Понятно. У тебя есть родной DLL или EXE COM сервер ? Чтобы что-то тебе посоветовать, мне необходимо увидеть IDL этого сервера. Делаеться он компилятором MIDL из Visual Studio из командной строки. MIDL /? >> help.txt help.txt - тут будут лежать параметры, разберешься. Можно просто открыть OLEVIEW и открыть зарегестрированную компоненту. Увидишь примерно это: // Generated .IDL file (by the OLE/COM Object Viewer) // // typelib filename: comadmin.dll [ uuid(F618C513-DFB8-11D1-A2CF-00805FC79235), version(1.0), helpstring("COM + 1.0 Admin Type Library") ] library COMAdmin { // TLib : // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046} importlib("stdole2.tlb"); // Forward declare all types defined in this typelib interface ICOMAdminCatalog2; interface ICOMAdminCatalog; interface ICatalogObject; interface ICatalogCollection; [ uuid(F618C514-DFB8-11D1-A2CF-00805FC79235), helpstring("COM Admin Class") ] coclass COMAdminCatalog { [default] interface ICOMAdminCatalog2; }; [ odl, uuid(790C6E0B-9194-4CC9-9426-A48A63185696), helpstring("ICOMAdminCatalog2 Interface"), dual, oleautomation ] interface ICOMAdminCatalog2 : ICOMAdminCatalog { [id(0x0000001b), helpstring("Get a catalog collection")] HRESULT GetCollectionByQuery2( [in] BSTR bstrCollectionName, [in] VARIANT* pVarQueryStrings, [out, retval] IDispatch** ppCatalogCollection); [id(0x0000001c), helpstring("Get an Application Instance ID from a Process ID")] HRESULT GetApplicationInstanceIDFromProcessID( [in] long lProcessID, [out, retval] BSTR* pbstrApplicationInstanceID); [id(0x0000001d), helpstring("Initiate shutdown of the specified application server processes")] HRESULT ShutdownApplicationInstances([in] VARIANT* pVarApplicationInstanceID); [id(0x0000001e), helpstring("Pause one or more application server processes")] HRESULT PauseApplicationInstances([in] VARIANT* pVarApplicationInstanceID); [id(0x0000001f), helpstring("Resume one or more application server processes")] HRESULT ResumeApplicationInstances([in] VARIANT* pVarApplicationInstanceID); [id(0x00000020), helpstring("Recycle one or more application server processes")] HRESULT RecycleApplicationInstances( [in] VARIANT* pVarApplicationInstanceID, [in] long lReasonCode); [id(0x00000021), helpstring("Return VARIANT_TRUE if ANY application instances are paused")] HRESULT AreApplicationInstancesPaused( [in] VARIANT* pVarApplicationInstanceID, [out, retval] VARIANT_BOOL* pVarBoolPaused); [id(0x00000022), helpstring("Dump an image of this application process to disk")] HRESULT DumpApplicationInstance( [in] BSTR bstrApplicationInstanceID, [in] BSTR bstrDirectory, [in] long lMaxImages, [out, retval] BSTR* pbstrDumpFile); [id(0x00000023), propget, helpstring("Is the application process dump feature supported on this server")] HRESULT IsApplicationInstanceDumpSupported([out, retval] VARIANT_BOOL* pVarBoolDumpSupported); [id(0x00000024), helpstring("Configure an application to run as an NT service")] HRESULT CreateServiceForApplication( [in] BSTR bstrApplicationIDOrName, [in] BSTR bstrServiceName, [in] BSTR bstrStartType, [in] BSTR bstrErrorControl, [in] BSTR bstrDependencies, [in] BSTR bstrRunAs, [in] BSTR bstrPassword, [in] VARIANT_BOOL bDesktopOk); [id(0x00000025), helpstring("Un-configure an application running as an NT service")] HRESULT DeleteServiceForApplication([in] BSTR bstrApplicationIDOrName); [id(0x00000026), helpstring("Return the Partition ID for the specified Application")] HRESULT GetPartitionID( [in] BSTR bstrApplicationIDOrName, [out, retval] BSTR* pbstrPartitionID); [id(0x00000027), helpstring("Return the Partition name for the specified Application")] HRESULT GetPartitionName( [in] BSTR bstrApplicationIDOrName, [out, retval] BSTR* pbstrPartitionName); [id(0x00000028), propput, helpstring("Set the current destination Partition")] HRESULT CurrentPartition([in] BSTR rhs); [id(0x00000029), propget, helpstring("Get the current Partition ID")] HRESULT CurrentPartitionID([out, retval] BSTR* pbstrPartitionID); [id(0x0000002a), propget, helpstring("Get the current Partition name")] HRESULT CurrentPartitionName([out, retval] BSTR* pbstrPartitionName); [id(0x0000002b), propget, helpstring("Get the Global Partition ID")] HRESULT GlobalPartitionID([out, retval] BSTR* pbstrGlobalPartitionID); [id(0x0000002c), helpstring("Flush the user-to-default Partition cache")] HRESULT FlushPartitionCache(); [id(0x0000002d), helpstring("Copy one or more Applications from Partition to Partition")] HRESULT CopyApplications( [in] BSTR bstrSourcePartitionIDOrName, [in] VARIANT* pVarApplicationID, [in] BSTR bstrDestinationPartitionIDOrName); [id(0x0000002e), helpstring("Copy one or more components from one Application to an Application in a different Partition")] HRESULT CopyComponents( [in] BSTR bstrSourceApplicationIDOrName, [in] VARIANT* pVarCLSIDOrProgID, [in] BSTR bstrDestinationApplicationIDOrName); [id(0x0000002f), helpstring("Move one or more components from an Application to another Application in a different Partition")] HRESULT MoveComponents( [in] BSTR bstrSourceApplicationIDOrName, [in] VARIANT* pVarCLSIDOrProgID, [in] BSTR bstrDestinationApplicationIDOrName); [id(0x00000030), helpstring("Create an alias for component configuration while retaining the implementation")] HRESULT AliasComponent( [in] BSTR bstrSrcApplicationIDOrName, [in] BSTR bstrCLSIDOrProgID, [in] BSTR bstrDestApplicationIDOrName, [in] BSTR bstrNewProgId, [in] BSTR bstrNewClsid); [id(0x00000031), helpstring("Checks whether a DLL is in use by catalog or registry")] HRESULT IsSafeToDelete( [in] BSTR bstrDllName, [out, retval] COMAdminInUse* pCOMAdminInUse); [id(0x00000032), helpstring("Import the specified classes as non-configured components")] HRESULT ImportUnconfiguredComponents( [in] BSTR bstrApplicationIDOrName, [in] VARIANT* pVarCLSIDOrProgID, [in, optional] VARIANT* pVarComponentType); [id(0x00000033), helpstring("Promote the specified classes to become configured COM+ components")] HRESULT PromoteUnconfiguredComponents( [in] BSTR bstrApplicationIDOrName, [in] VARIANT* pVarCLSIDOrProgID, [in, optional] VARIANT* pVarComponentType); [id(0x00000034), helpstring("Import one or more components that are already registered as an inproc server in the 32 or 64 bit registry")] HRESULT ImportComponents( [in] BSTR bstrApplicationIDOrName, [in] VARIANT* pVarCLSIDOrProgID, [in, optional] VARIANT* pVarComponentType); [id(0x00000035), propget, helpstring("Determine if the target catalog server is 64 bit")] HRESULT Is64BitCatalogServer([out, retval] VARIANT_BOOL* pbIs64Bit); [id(0x00000036), helpstring("Export a Partition to be installed on another machine")] HRESULT ExportPartition( [in] BSTR bstrPartitionIDOrName, [in] BSTR bstrPartitionFileName, [in] long lOptions); [id(0x00000037), helpstring("Import a Partition from a file")] HRESULT InstallPartition( [in] BSTR bstrFileName, [in] BSTR bstrDestDirectory, [in] long lOptions, [in] BSTR bstrUserId, [in] BSTR bstrPassword, [in] BSTR bstrRSN); [id(0x00000038), helpstring("Return information about an application that is about to be installed")] HRESULT QueryApplicationFile2( [in] BSTR bstrApplicationFile, [out, retval] IDispatch** ppFilesForImport); [id(0x00000039), helpstring("Return the number of Partitions in which a specified component is installed")] HRESULT GetComponentVersionCount( [in] BSTR bstrCLSIDOrProgID, [out, retval] long* plVersionCount); }; [ odl, uuid(DD662187-DFC2-11D1-A2CF-00805FC79235), helpstring("ICOMAdminCatalog Interface"), dual, oleautomation ] interface ICOMAdminCatalog : IDispatch { [id(0x00000001), helpstring("Gets a collection on the local catalog - without reading any objects from the catalog data store")] HRESULT GetCollection( [in] BSTR bstrCollName, [out, retval] IDispatch** ppCatalogCollection); [id(0x00000002), helpstring("Connect to a catalog server and get the Root Collection")] HRESULT Connect( [in] BSTR bstrCatalogServerName, [out, retval] IDispatch** ppCatalogCollection); [id(0x00000003), propget, helpstring("Gets the major version number of the COM Admin objects")] HRESULT MajorVersion([out, retval] long* plMajorVersion); [id(0x00000004), propget, helpstring("Gets the minor version number of the COM Admin objects")] HRESULT MinorVersion([out, retval] long* plMinorVersion); [id(0x00000005), helpstring("---")] HRESULT GetCollectionByQuery( [in] BSTR bstrCollName, [in] SAFEARRAY(VARIANT)* ppsaVarQuery, [out, retval] IDispatch** ppCatalogCollection); [id(0x00000006), helpstring("Imports a component that is already registered as an InProc server")] HRESULT ImportComponent( [in] BSTR bstrApplIDOrName, [in] BSTR bstrCLSIDOrProgID); [id(0x00000007), helpstring("Installs a component into an application")] HRESULT InstallComponent( [in] BSTR bstrApplIDOrName, [in] BSTR bstrDLL, [in] BSTR bstrTLB, [in] BSTR bstrPSDLL); [id(0x00000008), helpstring("Initiates shutdown of an application server process")] HRESULT ShutdownApplication([in] BSTR bstrApplIDOrName); [id(0x00000009), helpstring("Exports an application or client application to be installed on a different machine")] HRESULT ExportApplication( [in] BSTR bstrApplIDOrName, [in] BSTR bstrApplicationFile, [in] long lOptions); [id(0x0000000a), helpstring("Imports an application from a file")] HRESULT InstallApplication( [in] BSTR bstrApplicationFile, [in, optional] BSTR bstrDestinationDirectory, [in, optional] long lOptions, [in, optional] BSTR bstrUserId, [in, optional] BSTR bstrPassword, [in, optional] BSTR bstrRSN); [id(0x0000000b), helpstring("Stops the router service")] HRESULT StopRouter(); [id(0x0000000c), helpstring("Refreshes the data being used by the router service")] HRESULT RefreshRouter(); [id(0x0000000d), helpstring("Starts the router service")] HRESULT StartRouter(); [id(0x0000000e), helpstring("Reserved method 1")] HRESULT Reserved1(); [id(0x0000000f), helpstring("Reserved method 2")] HRESULT Reserved2(); [id(0x00000010), helpstring("Installs components into an application from multiple files")] HRESULT InstallMultipleComponents( [in] BSTR bstrApplIDOrName, [in] SAFEARRAY(VARIANT)* ppsaVarFileNames, [in] SAFEARRAY(VARIANT)* ppsaVarCLSIDs); [id(0x00000011), helpstring("Returns information about components found in the files")] HRESULT GetMultipleComponentsInfo( [in] BSTR bstrApplIDOrName, [in] SAFEARRAY(VARIANT)* ppsaVarFileNames, [out] SAFEARRAY(VARIANT)* ppsaVarCLSIDs, [out] SAFEARRAY(VARIANT)* ppsaVarClassNames, [out] SAFEARRAY(VARIANT)* ppsaVarFileFlags, [out] SAFEARRAY(VARIANT)* ppsaVarComponentFlags); [id(0x00000012), helpstring("Refreshes all component registration information")] HRESULT RefreshComponents(); [id(0x00000013), helpstring("Registration database backup")] HRESULT BackupREGDB([in] BSTR bstrBackupFilePath); [id(0x00000014), helpstring("Registration database restore (must reboot after)")] HRESULT RestoreREGDB([in] BSTR bstrBackupFilePath); [id(0x00000015), helpstring("Returns information about an application that is about to be installed")] HRESULT QueryApplicationFile( [in] BSTR bstrApplicationFile, [out] BSTR* pbstrApplicationName, [out] BSTR* pbstrApplicationDescription, [out] VARIANT_BOOL* pbHasUsers, [out] VARIANT_BOOL* pbIsProxy, [out] SAFEARRAY(VARIANT)* ppsaVarFileNames); [id(0x00000016), helpstring("Launches application server process")] HRESULT StartApplication([in] BSTR bstrApplIDOrName); [id(0x00000017), helpstring("Checks the status of a COM+ related service")] HRESULT ServiceCheck( [in] long lService, [out, retval] long* plStatus); [id(0x00000018), helpstring("Installs multiple event classes into an application")] HRESULT InstallMultipleEventClasses( [in] BSTR bstrApplIDOrName, [in] SAFEARRAY(VARIANT)* ppsaVarFileNames, [in] SAFEARRAY(VARIANT)* ppsaVarCLSIDs); [id(0x00000019), helpstring("Installs a event class into an application (if one is provided)")] HRESULT InstallEventClass( [in] BSTR bstrApplIDOrName, [in] BSTR bstrDLL, [in] BSTR bstrTLB, [in] BSTR bstrPSDLL); [id(0x0000001a), helpstring("Gets a list of event classes that implement a specified interface")] HRESULT GetEventClassesForIID( [in] BSTR bstrIID, [out] SAFEARRAY(VARIANT)* ppsaVarCLSIDs, [out] SAFEARRAY(VARIANT)* ppsaVarProgIDs, [out] SAFEARRAY(VARIANT)* ppsaVarDescriptions); }; typedef [helpstring("InUse values for IsSafeToDelete")] enum { COMAdminNotInUse = 0, COMAdminInUseByCatalog = 1, COMAdminInUseByRegistryUnknown = 2, COMAdminInUseByRegistryProxyStub = 3, COMAdminInUseByRegistryTypeLib = 4, COMAdminInUseByRegistryClsid = 5 } COMAdminInUse; [ uuid(F618C515-DFB8-11D1-A2CF-00805FC79235), helpstring("COM Admin Catalog Object Class") ] coclass COMAdminCatalogObject { [default] interface ICatalogObject; }; [ odl, uuid(6EB22871-8A19-11D0-81B6-00A0C9231C29), helpstring("ICatalogObject Interface"), dual, oleautomation ] interface ICatalogObject : IDispatch { [id(0x00000001), propget, helpstring("Gets a property value")] HRESULT Value( [in] BSTR bstrPropName, [out, retval] VARIANT* pvarRetVal); [id(0x00000001), propput, helpstring("Gets a property value")] HRESULT Value( [in] BSTR bstrPropName, [in] VARIANT pvarRetVal); [id(0x00000002), propget, helpstring("Gets the value of the key property")] HRESULT Key([out, retval] VARIANT* pvarRetVal); [id(0x00000003), propget, helpstring("Gets the name of the object")] HRESULT Name([out, retval] VARIANT* pvarRetVal); [id(0x00000004), helpstring("True if the property cannot be set")] HRESULT IsPropertyReadOnly( [in] BSTR bstrPropName, [out, retval] VARIANT_BOOL* pbRetVal); [id(0x00000005), propget, helpstring("True if all properties were successfully read from the catalog data store")] HRESULT Valid([out, retval] VARIANT_BOOL* pbRetVal); [id(0x00000006), helpstring("True if the property cannot be read")] HRESULT IsPropertyWriteOnly( [in] BSTR bstrPropName, [out, retval] VARIANT_BOOL* pbRetVal); }; [ uuid(F618C516-DFB8-11D1-A2CF-00805FC79235), helpstring("COM Admin Catalog Collection Class") ] coclass COMAdminCatalogCollection { [default] interface ICatalogCollection; }; [ odl, uuid(6EB22872-8A19-11D0-81B6-00A0C9231C29), helpstring("ICatalogCollection Interface"), dual, oleautomation ] interface ICatalogCollection : IDispatch { [id(0xfffffffc), propget, restricted] HRESULT _NewEnum([out, retval] IUnknown** ppEnumVariant); [id(0x00000001), propget, helpstring("Returns an object by index")] HRESULT Item( [in] long lIndex, [out, retval] IDispatch** ppCatalogObject); [id(0x60020002), propget, helpstring("Returns number of objects in the collection")] HRESULT Count([out, retval] long* plObjectCount); [id(0x60020003), helpstring("Removes an item, given the index")] HRESULT Remove([in] long lIndex); [id(0x60020004), helpstring("Adds an object to the collection - returns the new object")] HRESULT Add([out, retval] IDispatch** ppCatalogObject); [id(0x00000002), helpstring("Reads all the collection objects from the catalog data store")] HRESULT Populate(); [id(0x00000003), helpstring("Saves changes made to the collection into the catalog data store")] HRESULT SaveChanges([out, retval] long* pcChanges); [id(0x00000004), helpstring("Gets a collection related to a specific object - without reading any objects from the catalog data store")] HRESULT GetCollection( [in] BSTR bstrCollName, [in] VARIANT varObjectKey, [out, retval] IDispatch** ppCatalogCollection); [id(0x00000006), propget, helpstring("Gets the name of the collection")] HRESULT Name([out, retval] VARIANT* pVarNamel); [id(0x00000007), propget, helpstring("Returns VARIANT_TRUE if Add is enabled")] HRESULT AddEnabled([out, retval] VARIANT_BOOL* pVarBool); [id(0x00000008), propget, helpstring("Returns VARIANT_TRUE if Remove is enabled")] HRESULT RemoveEnabled([out, retval] VARIANT_BOOL* pVarBool); [id(0x00000009), helpstring("Gets the utility interface")] HRESULT GetUtilInterface([out, retval] IDispatch** ppIDispatch); [id(0x0000000a), propget, helpstring("Gets the major version number of the Catalog data store")] HRESULT DataStoreMajorVersion([out, retval] long* plMajorVersion); [id(0x0000000b), propget, helpstring("Gets the minor version number of the Catalog data store")] HRESULT DataStoreMinorVersion([out, retval] long* plMinorVersionl); [id(0x0000000c), helpstring("Reads selected objects from the catalog data store")] HRESULT PopulateByKey([in] SAFEARRAY(VARIANT) psaKeys); [id(0x0000000d), helpstring("Reserved for future use")] HRESULT PopulateByQuery( [in] BSTR bstrQueryString, [in] long lQueryType); }; typedef [helpstring("ComponentType values for ImportComponentAsLegacy")] enum { COMAdmin32BitComponent = 1, COMAdmin64BitComponent = 2 } COMAdminComponentType; typedef [helpstring("Application install options - these options can be or'ed together")] enum { COMAdminInstallNoUsers = 0, COMAdminInstallUsers = 1, COMAdminInstallForceOverwriteOfFiles = 2 } COMAdminApplicationInstallOptions; typedef [helpstring("Application export options - these options can be or'ed together")] enum { COMAdminExportNoUsers = 0, COMAdminExportUsers = 1, COMAdminExportApplicationProxy = 2, COMAdminExportForceOverwriteOfFiles = 4, COMAdminExportIn10Format = 16 } COMAdminApplicationExportOptions; typedef [helpstring("Threading Model Enumerations")] enum { COMAdminThreadingModelApartment = 0, COMAdminThreadingModelFree = 1, COMAdminThreadingModelMain = 2, COMAdminThreadingModelBoth = 3, COMAdminThreadingModelNeutral = 4, COMAdminThreadingModelNotSpecified = 5 } COMAdminThreadingModels; typedef [helpstring("Transaction Settings Enumerations")] enum { COMAdminTransactionIgnored = 0, COMAdminTransactionNone = 1, COMAdminTransactionSupported = 2, COMAdminTransactionRequired = 3, COMAdminTransactionRequiresNew = 4 } COMAdminTransactionOptions; typedef [helpstring("Transaction Isolation Level Enumerations")] enum { COMAdminTxIsolationLevelAny = 0, COMAdminTxIsolationLevelReadUnCommitted = 1, COMAdminTxIsolationLevelReadCommitted = 2, COMAdminTxIsolationLevelRepeatableRead = 3, COMAdminTxIsolationLevelSerializable = 4 } COMAdminTxIsolationLevelOptions; typedef [helpstring("Synchronization Settings Enumerations")] enum { COMAdminSynchronizationIgnored = 0, COMAdminSynchronizationNone = 1, COMAdminSynchronizationSupported = 2, COMAdminSynchronizationRequired = 3, COMAdminSynchronizationRequiresNew = 4 } COMAdminSynchronizationOptions; typedef [helpstring("Activation Settings Enumerations")] enum { COMAdminActivationInproc = 0, COMAdminActivationLocal = 1 } COMAdminActivationOptions; typedef [helpstring("Access Level Settings Enumerations")] enum { COMAdminAccessChecksApplicationLevel = 0, COMAdminAccessChecksApplicationComponentLevel = 1 } COMAdminAccessChecksLevelOptions; typedef [helpstring("Authentication Level Settings Enumerations")] enum { COMAdminAuthenticationDefault = 0, COMAdminAuthenticationNone = 1, COMAdminAuthenticationConnect = 2, COMAdminAuthenticationCall = 3, COMAdminAuthenticationPacket = 4, COMAdminAuthenticationIntegrity = 5, COMAdminAuthenticationPrivacy = 6 } COMAdminAuthenticationLevelOptions; typedef [helpstring("Impersonation Level Settings Enumerations")] enum { COMAdminImpersonationAnonymous = 1, COMAdminImpersonationIdentify = 2, COMAdminImpersonationImpersonate = 3, COMAdminImpersonationDelegate = 4 } COMAdminImpersonationLevelOptions; typedef [helpstring("Authentication Capabilities Settings Enumerations")] enum { COMAdminAuthenticationCapabilitiesNone = 0, COMAdminAuthenticationCapabilitiesSecureReference = 2, COMAdminAuthenticationCapabilitiesStaticCloaking = 32, COMAdminAuthenticationCapabilitiesDynamicCloaking = 64 } COMAdminAuthenticationCapabilitiesOptions; typedef [helpstring("Operating System Enumerations")] enum { COMAdminOSWindows3_1 = 1, COMAdminOSWindows9x = 2, COMAdminOSWindowsNT = 3, COMAdminOSWindowsNTEnterprise = 4, COMAdminOSWindows2000Personal = 5 } COMAdminOS; typedef [helpstring("Service Enumerations")] enum { COMAdminServiceLoadBalanceRouter = 1 } COMAdminServiceOptions; typedef [helpstring("Service Status Enumerations")] enum { COMAdminServiceStopped = 0, COMAdminServiceStartPending = 1, COMAdminServiceStopPending = 2, COMAdminServiceRunning = 3, COMAdminServiceContinuePending = 4, COMAdminServicePausePending = 5, COMAdminServicePaused = 6, COMAdminServiceUnknownState = 7 } COMAdminServiceStatusOptions; typedef [helpstring("Queued Components Message Authenticate Enumeration")] enum { COMAdminQCMessageAuthenticateSecureApps = 0, COMAdminQCMessageAuthenticateOff = 1, COMAdminQCMessageAuthenticateOn = 2 } COMAdminQCMessageAuthenticateOptions; typedef [helpstring("File Flags")] enum { COMAdminFileFlagLoadable = 1, COMAdminFileFlagCOM = 2, COMAdminFileFlagContainsPS = 4, COMAdminFileFlagContainsComp = 8, COMAdminFileFlagContainsTLB = 16, COMAdminFileFlagSelfReg = 32, COMAdminFileFlagSelfUnReg = 64, COMAdminFileFlagUnloadableDLL = 128, COMAdminFileFlagDoesNotExist = 256, COMAdminFileFlagAlreadyInstalled = 512, COMAdminFileFlagBadTLB = 1024, COMAdminFileFlagGetClassObjFailed = 2048, COMAdminFileFlagClassNotAvailable = 4096, COMAdminFileFlagRegistrar = 8192, COMAdminFileFlagNoRegistrar = 16384, COMAdminFileFlagDLLRegsvrFailed = 32768, COMAdminFileFlagRegTLBFailed = 65536, COMAdminFileFlagRegistrarFailed = 131072, COMAdminFileFlagError = 262144 } COMAdminFileFlags; typedef [helpstring("Component Flags")] enum { COMAdminCompFlagTypeInfoFound = 1, COMAdminCompFlagCOMPlusPropertiesFound = 2, COMAdminCompFlagProxyFound = 4, COMAdminCompFlagInterfacesFound = 8, COMAdminCompFlagAlreadyInstalled = 16, COMAdminCompFlagNotInApplication = 32 } COMAdminComponentFlags; typedef [helpstring("Error codes (HRESULTS)")] enum { COMAdminErrObjectErrors = -2146368511, COMAdminErrObjectInvalid = -2146368510, COMAdminErrKeyMissing = -2146368509, COMAdminErrAlreadyInstalled = -2146368508, COMAdminErrAppFileWriteFail = -2146368505, COMAdminErrAppFileReadFail = -2146368504, COMAdminErrAppFileVersion = -2146368503, COMAdminErrBadPath = -2146368502, COMAdminErrApplicationExists = -2146368501, COMAdminErrRoleExists = -2146368500, COMAdminErrCantCopyFile = -2146368499, COMAdminErrNoUser = -2146368497, COMAdminErrInvalidUserids = -2146368496, COMAdminErrNoRegistryCLSID = -2146368495, COMAdminErrBadRegistryProgID = -2146368494, COMAdminErrAuthenticationLevel = -2146368493, COMAdminErrUserPasswdNotValid = -2146368492, COMAdminErrCLSIDOrIIDMismatch = -2146368488, COMAdminErrRemoteInterface = -2146368487, COMAdminErrDllRegisterServer = -2146368486, COMAdminErrNoServerShare = -2146368485, COMAdminErrDllLoadFailed = -2146368483, COMAdminErrBadRegistryLibID = -2146368482, COMAdminErrAppDirNotFound = -2146368481, COMAdminErrRegistrarFailed = -2146368477, COMAdminErrCompFileDoesNotExist = -2146368476, COMAdminErrCompFileLoadDLLFail = -2146368475, COMAdminErrCompFileGetClassObj = -2146368474, COMAdminErrCompFileClassNotAvail = -2146368473, COMAdminErrCompFileBadTLB = -2146368472, COMAdminErrCompFileNotInstallable = -2146368471, COMAdminErrNotChangeable = -2146368470, COMAdminErrNotDeletable = -2146368469, COMAdminErrSession = -2146368468, COMAdminErrCompMoveLocked = -2146368467, COMAdminErrCompMoveBadDest = -2146368466, COMAdminErrRegisterTLB = -2146368464, COMAdminErrSystemApp = -2146368461, COMAdminErrCompFileNoRegistrar = -2146368460, COMAdminErrCoReqCompInstalled = -2146368459, COMAdminErrServiceNotInstalled = -2146368458, COMAdminErrPropertySaveFailed = -2146368457, COMAdminErrObjectExists = -2146368456, COMAdminErrComponentExists = -2146368455, COMAdminErrRegFileCorrupt = -2146368453, COMAdminErrPropertyOverflow = -2146368452, COMAdminErrNotInRegistry = -2146368450, COMAdminErrObjectNotPoolable = -2146368449, COMAdminErrApplidMatchesClsid = -2146368442, COMAdminErrRoleDoesNotExist = -2146368441, COMAdminErrStartAppNeedsComponents = -2146368440, COMAdminErrRequiresDifferentPlatform = -2146368439, COMAdminErrQueuingServiceNotAvailable = -2146367998, COMAdminErrObjectParentMissing = -2146367480, COMAdminErrObjectDoesNotExist = -2146367479, COMAdminErrCanNotExportAppProxy = -2146368438, COMAdminErrCanNotStartApp = -2146368437, COMAdminErrCanNotExportSystemApp = -2146368436, COMAdminErrCanNotSubscribeToComponent = -2146368435, COMAdminErrAppNotRunning = -2146367478, COMAdminErrEventClassCannotBeSubscriber = -2146368434, COMAdminErrLibAppProxyIncompatible = -2146368433, COMAdminErrBasePartitionOnly = -2146368432, COMAdminErrDuplicatePartitionName = -2146368425, COMAdminErrPartitionInUse = -2146368423, COMAdminErrImportedComponentsNotAllowed = -2146368421, COMAdminErrRegdbNotInitialized = -2146368398, COMAdminErrRegdbNotOpen = -2146368397, COMAdminErrRegdbSystemErr = -2146368396, COMAdminErrRegdbAlreadyRunning = -2146368395, COMAdminErrMigVersionNotSupported = -2146368384, COMAdminErrMigSchemaNotFound = -2146368383, COMAdminErrCatBitnessMismatch = -2146368382, COMAdminErrCatUnacceptableBitness = -2146368381, COMAdminErrCatWrongAppBitnessBitness = -2146368380, COMAdminErrCatPauseResumeNotSupported = -2146368379, COMAdminErrCatServerFault = -2146368378, COMAdminErrCantRecycleLibraryApps = -2146367473, COMAdminErrCantRecycleServiceApps = -2146367471, COMAdminErrProcessAlreadyRecycled = -2146367470, COMAdminErrPausedProcessMayNotBeRecycled = -2146367469, COMAdminErrInvalidPartition = -2146367477, COMAdminErrPartitionMsiOnly = -2146367463, COMAdminErrStartAppDisabled = -2146368431, COMAdminErrCompMoveSource = -2146367460, COMAdminErrCompMoveDest = -2146367459, COMAdminErrCompMovePrivate = -2146367458, COMAdminErrCannotCopyEventClass = -2146367456 } COMAdminErrorCodes; }; Вот нужно узнать, тоже самое для существующего контрола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 12:20:40 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
родного КОМ-сервера нету.... я его и хочу на фоксе нарисовать!!!!! есть ПО, в настройках которого я могу указать внешний ком сервер для обработки информации. Этот внешний ком сервер и нужно сделать... Для него разработчики и написали - какой интерфейс сделать!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 12:56:12 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
они прислали примерный код DLL-ки.... но я не С-шник...... я с трудом читаю С-ный код...... но тама все-равно они нарисовали другой интерфейс!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 12:58:39 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Ну приведи его.Яя так понимаю, что ты хочешь подменить методы стандартного контрола своими :) Давай сюда свой код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:00:55 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
там в примерном COM-объекте /написанно на С++/ просто берутся по запросу данные из текстового файла...... я хочу подобное нарисовать на фоксе!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:05:23 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Ага, еще бы ты мне сказал где скачать крекнутый VC 7.0 (7.1), тогда бы точно помог. У меня VS60 стоит. Лень все подключать. А в 7 или хотя бы MS C++.NET информация о сборке уже есть в XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:22:07 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
сорри!!!! выкладываю тот проект, который выслали сами разработчики...... предыдущий я открывал в .NETе...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:43:17 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
ну и что ? Я увидел именно стандартный интерфейс. Бери и пиши на VFP. Или ты надеешься, что тут за тебя полноценный контрол напишут ? Я готов написать - 300 американских юаней и вопрос решен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 16:19:53 |
|
||
|
интерфейсы COM-сервера
|
|||
|---|---|---|---|
|
#18+
Hi WertAndrey! прежде чем чего-то там писать, возьми и почитай нормальную книжку по COM - разберись в технологии, узнай что такое на самом деле есть интерфейсы IUnknown и IDispatch - и можно ли в принципе сделать COM сервер НЕ поддерживающий хотя-бы первый из них :) А то чувствуется что понимания пока нету... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 04:46:04 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33194255&tid=1593759]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 507ms |

| 0 / 0 |
