Показать сообщение отдельно
Старый 30.07.2003, 09:15   #2  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата из MSDN:

CLSIDFromProgID
Looks up a CLSID in the registry, given a ProgID.

HRESULT CLSIDFromProgID(

LPCOLESTR lpszProgID,

LPCLSID pclsid

);

Parameters
lpszProgID
[in] Pointer to the ProgID whose CLSID is requested.

pclsid

[out] Pointer to the retrieved CLSID on return.

Return Values
S_OK
The CLSID was retrieved successfully.

CO_E_CLASSSTRING

The registered CLSID for the ProgID is invalid.

REGDB_E_WRITEREGDB

An error occurred writing the CLSID to the registry. See "Remarks" below.

Remarks
Given a ProgID, CLSIDFromProgID looks up its associated CLSID in the registry. If the ProgID cannot be found in the registry, CLSIDFromProgID creates an OLE 1 CLSID for the ProgID and a CLSID entry in the registry. Because of the restrictions placed on OLE 1 CLSID values, CLSIDFromProgID and CLSIDFromString are the only two functions that can be used to generate a CLSID for an OLE 1 object.
CLSIDFromProgID never triggers an automatic installation of missing classes.

Requirements

Windows NT/2000/XP: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in objbase.h.
Library: Use ole32.lib.

Правда не знаю как на Axapta, но на С++ будет так
PHP код:
#include "stdafx.h"
#include <objbase.h>
#include <stdio.h>

int main(int argccharargv[])
{
    
    
LPCOLESTR lpStr=L"Excel.Application";
    
CLSID  findCLSID;

    
HRESULT hr=CLSIDFromProgID(lpStr,&findCLSID);
    if(
FAILED(hr))
        
printf("Error %x\n",hr);

    return 
0;