Re: Newbie adding COM components to a project
I have made some progress I think.
I did a rename as below and it reduced the number of errors from 130 or
so to 21.
#import "bbreapi7.tld" rename("EOF","EndOfFile") rename
("GetUserName","MyGetUserName")
I have tried to do the same with the remaining identifiers but it does
not help. The error messages are now:
c:\testproj\testproj\debug\bbreapi7.tlh(44666) : warning C4183:
'GetDocumentLeft': missing return type; assumed to be a member function
returning 'int'
c:\testproj\testproj\debug\bbreapi7.tlh(44667) : error C2146: syntax
error : missing ';' before identifier 'GetDocumentTop'
c:\testproj\testproj\debug\bbreapi7.tlh(44667) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
c:\testproj\testproj\debug\bbreapi7.tlh(44667) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
c:\testproj\testproj\debug\bbreapi7.tlh(44667) : warning C4183:
'GetDocumentTop': missing return type; assumed to be a member function
returning 'int'
c:\testproj\testproj\debug\bbreapi7.tlh(76997) : error C2143: syntax
error : missing ';' before 'BBREAPI7::IBBShellHost::GetDocumentLeft'
c:\testproj\testproj\debug\bbreapi7.tlh(76997) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
c:\testproj\testproj\debug\bbreapi7.tlh(76997) : error C2497:
'DispHTMLDocumentPtr' : 'implementation_key' can only be applied to
function declarations
c:\testproj\testproj\debug\bbreapi7.tlh(76997) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
c:\testproj\testproj\debug\bbreapi7.tlh(76998) : error C2143: syntax
error : missing ';' before 'BBREAPI7::IBBShellHost::GetDocumentTop'
c:\testproj\testproj\debug\bbreapi7.tlh(76998) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
c:\testproj\testproj\debug\bbreapi7.tlh(76998) : error C2497:
'DispHTMLDocumentPtr' : 'implementation_key' can only be applied to
function declarations
c:\testproj\testproj\debug\bbreapi7.tlh(76998) : error C2086: 'int
BBREAPI7::DispHTMLDocumentPtr' : redefinition
c:\testproj\testproj\debug\bbreapi7.tlh(76997) : see
declaration of 'BBREAPI7::DispHTMLDocumentPtr'
c:\testproj\testproj\debug\bbreapi7.tlh(76998) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
The first error corresponds to the following code:
struct __declspec(uuid("659adb4f-33ca-11d3-9062-00c04f75d3b8"))
IBBShellHost : IDispatch
{
//
// Property data
//
__declspec(property(get=GetDocumentMain))
IDispatchPtr DocumentMain;
__declspec(property(get=GetDocumentTop))
DispHTMLDocumentPtr DocumentTop;
__declspec(property(get=GetDocumentLeft))
DispHTMLDocumentPtr DocumentLeft;
__declspec(property(get=GetSessionContext))
IBBSessionContextPtr SessionContext;
//
// Wrapper methods for error-handling
//
IBBSessionContextPtr GetSessionContext ( );
HRESULT LoadPage (
VARIANT * vURL,
VARIANT * vArgs );
DispHTMLDocumentPtr GetDocumentLeft ( );
DispHTMLDocumentPtr GetDocumentTop ( );
IDispatchPtr GetDocumentMain ( );
HRESULT getClientArea (
long * lx,
long * ly,
long * lw,
long * lHt );
HRESULT DocEvent (
enum BBShellDocEvents lEventID,
VARIANT * vArgs );
HRESULT TipOfTheDay (
BSTR * sImg,
BSTR * sTipText );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall get_SessionContext (
/*[out,retval]*/ struct IBBSessionContext * * __MIDL_0146 ) =
0;
virtual HRESULT __stdcall raw_LoadPage (
/*[in,out]*/ VARIANT * vURL,
/*[in,out]*/ VARIANT * vArgs ) = 0;
virtual HRESULT __stdcall get_DocumentLeft (
/*[out,retval]*/ struct DispHTMLDocument * * __MIDL_0147 ) = 0;
virtual HRESULT __stdcall get_DocumentTop (
/*[out,retval]*/ struct DispHTMLDocument * * __MIDL_0148 ) = 0;
virtual HRESULT __stdcall get_DocumentMain (
/*[out,retval]*/ IDispatch * * __MIDL_0149 ) = 0;
virtual HRESULT __stdcall raw_getClientArea (
/*[in,out]*/ long * lx,
/*[in,out]*/ long * ly,
/*[in,out]*/ long * lw,
/*[in,out]*/ long * lHt ) = 0;
virtual HRESULT __stdcall raw_DocEvent (
/*[in]*/ enum BBShellDocEvents lEventID,
/*[in,out]*/ VARIANT * vArgs ) = 0;
virtual HRESULT __stdcall raw_TipOfTheDay (
/*[in]*/ BSTR * sImg,
/*[in]*/ BSTR * sTipText ) = 0;
};
Any help is really appreciated
Thanks
David
zeidman@hotmail.com wrote:
This is the lines around line number 7211:
struct __declspec(uuid("914b06bd-7e4c-11d2-bcef-00e0290e1347"))
IBBQueryRow : IDispatch
{
//
// Property data
//
__declspec(property(get=GetInstanceHandle))
long InstanceHandle;
__declspec(property(get=GetField,put=PutField))
_variant_t Field[];
__declspec(property(get=GetFieldName))
_bstr_t FieldName[];
__declspec(property(get=GetFieldCount))
long FieldCount;
__declspec(property(get=GetBOF))
VARIANT_BOOL BOF;
__declspec(property(get=GetEOF))
VARIANT_BOOL EOF;
__declspec(property(get=GetRowNum))
long RowNum;
__declspec(property(get=GetQueryName))
_bstr_t QueryName;
__declspec(property(get=GetQueryID))
long QueryID;
__declspec(property(get=GetQueryType))
enum bbQueryTypes QueryType;
//
// Wrapper methods for error-handling
//
VARIANT_BOOL GetEOF ( );
VARIANT_BOOL GetBOF ( );
long GetFieldCount ( );
_bstr_t GetFieldName (
const _variant_t & Index );
void PutField (
const _variant_t & Index,
const _variant_t & __MIDL_0404 );
_variant_t GetField (
const _variant_t & Index );
long GetInstanceHandle ( );
HRESULT StopCallingMacro ( );
long GetRowNum ( );
_bstr_t GetQueryName ( );
long GetQueryID ( );
enum bbQueryTypes GetQueryType ( );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall get_EOF (
/*[out,retval]*/ VARIANT_BOOL * __MIDL_0399 ) = 0;
virtual HRESULT __stdcall get_BOF (
/*[out,retval]*/ VARIANT_BOOL * __MIDL_0400 ) = 0;
virtual HRESULT __stdcall get_FieldCount (
/*[out,retval]*/ long * __MIDL_0401 ) = 0;
virtual HRESULT __stdcall get_FieldName (
/*[in]*/ VARIANT Index,
/*[out,retval]*/ BSTR * __MIDL_0402 ) = 0;
virtual HRESULT __stdcall put_Field (
/*[in]*/ VARIANT Index,
/*[in]*/ VARIANT __MIDL_0404 ) = 0;
virtual HRESULT __stdcall get_Field (
/*[in]*/ VARIANT Index,
/*[out,retval]*/ VARIANT * __MIDL_0404 ) = 0;
virtual HRESULT __stdcall get_InstanceHandle (
/*[out,retval]*/ long * __MIDL_0405 ) = 0;
virtual HRESULT __stdcall raw_StopCallingMacro ( ) = 0;
virtual HRESULT __stdcall get_RowNum (
/*[out,retval]*/ long * __MIDL_0406 ) = 0;
virtual HRESULT __stdcall get_QueryName (
/*[out,retval]*/ BSTR * __MIDL_0407 ) = 0;
virtual HRESULT __stdcall get_QueryID (
/*[out,retval]*/ long * __MIDL_0408 ) = 0;
virtual HRESULT __stdcall get_QueryType (
/*[out,retval]*/ enum bbQueryTypes * __MIDL_0409 ) = 0;
};
Line 7211 (where is complains about a '-' sign is:
VARIANT_BOOL EOF;
Line 7319 is the same.
Again, thanks for any help. I can supply you with the whole tlh file if
it is easier but it is over 3Mb so I won't post it here!
Thanks
David
Stuart Redmann wrote:
zeidman@hotmail.com wrote:
OK, I realise the stupid mistake I was making. I was doing an include
on the tlb and not import.
However when I now do import I still get the following errors. Does
anybody have any thoughts?
c:\documents and settings\david\my documents\visual studio
2005\projects\testproj\testproj\debug\bbreapi7.tlh(7211) : error C2059:
syntax error : '-'
[snipped the rest of the error messages]
That certainly seems strange to me that the generated type library
header should contain a minus out of place (all minus signs should
appear either in comments or in the uuid-annotations). Could you post us
the offending lines of bbreapi7.tlh, or is this confidential information?
Stuart