Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
platform
active.directory
adsi
adsi.iis-admin
base
com_ole
complus_mts
component_svcs
database
directx
gdi
graphics_mm
internet.client
internet.server
internet.server.isapi-dev
localization
mapi
messaging
msi
mslayerforunicode
multimedia
networking
networking.ipv6
sdk_install
security
shell
telephony.tapi_2
telephony.tapi_3
telephony.tsp
telephony.wte
tools
ui
ui_shell
win_base_svcs
win16
  
 
date: Wed, 21 Dec 2005 14:53:12 +0100,    group: microsoft.public.platformsdk.com_ole        back       


objidl.h changes   
Hello,

We installed a new MSVC++ SDK

Windows XP SP2 SDK Release Notes
and tried to use it with MSvc++ 6.0.

We had some problems with uuid.lib, which we replaced by MSvc++ 6.0
uuid.lib.

Now some of our COM interfaces does not work anymore.

First we tried to find out, whats the problem maker: as long as i do not use
the include directory of the new sdk, everythings works fine! so the
problem maker is a include file!

now we tried to brake down what kind of interfaces cannot be created anymore
(QueryInterface returns :  DISP_E_BADVARTYPE).

interfaces containing
HRESULT GetDragData

(

[in] FORMATETC *pformatetc,

[in,out] STGMEDIUM *pmedium

);

cannot be created anymore.

Now we found a difference in objidl.h :

objidl.h in MSvc++6.0 has:

typedef struct  tagSTGMEDIUM
    {
    DWORD tymed;
    /* [switch_is][switch_type] */ union
        {
        /* [case()] */ HBITMAP hBitmap;
        /* [case()] */ HMETAFILEPICT hMetaFilePict;
        /* [case()] */ HENHMETAFILE hEnhMetaFile;
        /* [case()] */ HGLOBAL hGlobal;
        /* [case()] */ LPOLESTR lpszFileName;
        /* [case()] */ IStream __RPC_FAR *pstm;
        /* [case()] */ IStorage __RPC_FAR *pstg;
        /* [default] */  /* Empty union arm */
        } ;
    /* [unique] */ IUnknown __RPC_FAR *pUnkForRelease;
    } uSTGMEDIUM;

while objidl.h in the new SDK contains:

typedef struct tagSTGMEDIUM
    {
    DWORD tymed;
    /* [switch_is][switch_type] */ union
        {
        /* [case()] */ HBITMAP hBitmap;
        /* [case()] */ HMETAFILEPICT hMetaFilePict;
        /* [case()] */ HENHMETAFILE hEnhMetaFile;
        /* [case()] */ HGLOBAL hGlobal;
        /* [case()] */ LPOLESTR lpszFileName;
        /* [case()] */ IStream *pstm;
        /* [case()] */ IStorage *pstg;
        /* [default] */  /* Empty union arm */
        }  ;
    /* [unique] */ IUnknown *pUnkForRelease;
    }  uSTGMEDIUM;

there is no RPC_FAR * anymore!!!


any ideas?why has MS removed the RPC_FAR ?



-- 
mit freundlichen Gren/best regards
mario semo
date: Wed, 21 Dec 2005 14:53:12 +0100   author:   Mario Semo

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us