powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / интерфейсы COM-сервера
13 сообщений из 13, страница 1 из 1
интерфейсы COM-сервера
    #33193639
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как сделать в фоксе COM-сервер с нестандартным интерфейсом
есть оборудование со своим ПО. для работы с ним разработчики рекомендуют писать свои COM-сервера, учитывая, чтог на С++ я не силен, решил, как обычно, писать на VFP, но выяснилось что у COM-сервера требуется иной интерфейс...
стандартные IDispatch или IUnknown ему не нужен....
вопрос - каким образом написать на фоксе ком-сервер исользующий строго определенный интерфей?????
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33193978
Flex0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ты имеешь в виду под «нестандартный интерфейс» ?
С прямым доступ к твоим методам ? Ну так и будет такой доступ. Для программиста на 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.
LOCAL testobj
 testobj =  CREATEOBJECT("Test.MyClass")
 ? testobj.test_Proc("ля-ля-ля")
 Верент ля-ля-ля
 
 RELEASE  testobj
 
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194022
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поясню вопрос:
Есь какое-то железо со своим ПО, для связи с внешними данными, (в моем случае с MS SQL) разработчики сделали механизм COM-объектов.
в описании, каким должен быть COM, они настоятельно рекомендовали сделать реализацию строго определенного интерфейса, со своими функциями.....
ьтак вот я и не знаю - КАК этот интерфес на фоксе нарисовать.......
делать СОМ на С++ не хочу /да и не умею :о) /, т.к. там идет исключительно обработка данных из SQL и DBF......
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194058
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2WertAndrey
Может наконец объясните - чего надо то сделать ? Что за "не стандартный" интерфейс ? Пример из требований.
А то как-то не внятно объясняете...
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194067
Flex0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. У тебя есть родной 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;
};


Вот нужно узнать, тоже самое для существующего контрола.
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194164
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
родного КОМ-сервера нету.... я его и хочу на фоксе нарисовать!!!!!
есть ПО, в настройках которого я могу указать внешний ком сервер для обработки информации. Этот внешний ком сервер и нужно сделать... Для него разработчики и написали - какой интерфейс сделать!!!!!
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194174
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
они прислали примерный код DLL-ки.... но я не С-шник...... я с трудом читаю С-ный код...... но тама все-равно они нарисовали другой интерфейс!!!
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194184
Flex0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну приведи его.Яя так понимаю, что ты хочешь подменить методы стандартного контрола своими :) Давай сюда свой код.
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194196
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там в примерном COM-объекте /написанно на С++/ просто берутся по запросу данные из текстового файла......
я хочу подобное нарисовать на фоксе!!!!!!
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194255
Flex0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, еще бы ты мне сказал где скачать крекнутый VC 7.0 (7.1), тогда бы точно помог. У меня VS60 стоит. Лень все подключать. А в 7 или хотя бы MS C++.NET информация о сборке уже есть в XML.
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194312
WertAndrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри!!!!
выкладываю тот проект, который выслали сами разработчики......
предыдущий я открывал в .NETе......
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33194749
Flex0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и что ? Я увидел именно стандартный интерфейс. Бери и пиши на VFP.
Или ты надеешься, что тут за тебя полноценный контрол напишут ?
Я готов написать - 300 американских юаней и вопрос решен.
...
Рейтинг: 0 / 0
интерфейсы COM-сервера
    #33195414
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi WertAndrey!

прежде чем чего-то там писать, возьми и почитай нормальную книжку по COM -
разберись в технологии, узнай что такое на самом деле есть интерфейсы
IUnknown и IDispatch - и можно ли в принципе сделать COM сервер НЕ
поддерживающий хотя-бы первый из них :)
А то чувствуется что понимания пока нету...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / интерфейсы COM-сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]