Need to write a dll that calls many of the funtions in the IVsShell.cs Like GetPackageEnum, GetProperty etc
The company wants access or a way to access these functions for security reasons.
Below is my start:
===================
#include "stdafx.h"
#include "MYDLL.h"
#include <C:\Program Files\Microsoft Visual Studio\2022\Preview\VSSDK\VisualStudioIntegration\Common\Inc\vsshell.h>
#ifdef __cplusplus
extern "C" {
#endif
//int GetPackageEnum([MarshalAs(UnmanagedType.Interface)] out IEnumPackages ppenum);
//HRESULT(STDMETHODCALLTYPE* GetPackageEnum)(__RPC__in IVsShell* This, __RPC__deref_out_opt IEnumPackages** ppEnum)
HRESULT MYDLL_GetPackageEnum(__RPC__in IVsShell* This, __RPC__deref_out_opt IEnumPackages** ppEnum)
{
HRESULT sts = IVsShell::GetPackageEnum(ppEnum);
return sts;
}
===================
Run into numerous errors. Am little rusty.
MYDLL_GetPackageEnum ==> This is what I will be calling
Can somebody help or at least JUST ONE OR TWO DLL FUNCTIONS
====================The IVsShell interface function that need to be written all of them============================
public interface IVsShell
{
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int GetPackageEnum([MarshalAs(UnmanagedType.Interface)] out IEnumPackages ppenum);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int GetProperty([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSSPROPID")] int propid, [MarshalAs(UnmanagedType.Struct)] out object pvar);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int SetProperty([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSSPROPID")] int propid, [In][MarshalAs(UnmanagedType.Struct)] object var);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int AdviseBroadcastMessages([In][MarshalAs(UnmanagedType.Interface)] IVsBroadcastMessageEvents pSink, [ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] out uint pdwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int UnadviseBroadcastMessages([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] uint dwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int AdviseShellPropertyChanges([In][MarshalAs(UnmanagedType.Interface)] IVsShellPropertyEvents pSink, [ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] out uint pdwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int UnadviseShellPropertyChanges([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] uint dwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadPackage([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [MarshalAs(UnmanagedType.Interface)] out IVsPackage ppPackage);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadPackageString([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [In][ComAliasName("Microsoft.VisualStudio.OLE.Interop.ULONG")] uint resid, [MarshalAs(UnmanagedType.BStr)] out string pbstrOut);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadUILibrary([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [In][ComAliasName("Microsoft.VisualStudio.OLE.Interop.DWORD")] uint dwExFlags, [ComAliasName("Microsoft.VisualStudio.OLE.Interop.ULONG_PTR")] out IntPtr phinstOut);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int IsPackageInstalled([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [ComAliasName("Microsoft.VisualStudio.OLE.Interop.BOOL")] out int pfInstalled);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int IsPackageLoaded([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [MarshalAs(UnmanagedType.Interface)] out IVsPackage ppPackage);
}
================================From VSSHELL.H=====================================================================================================
....
....
/* interface IVsShell */
/* [object][unique][version][uuid] */
EXTERN_C const IID IID_IVsShell;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("FD9DC8E3-2FFC-446D-8C50-99CA4A3D2D1C")
IVsShell : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetPackageEnum(
/* [out] */ __RPC__deref_out_opt IEnumPackages **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProperty(
/* [in] */ VSSPROPID propid,
/* [out] */ __RPC__out VARIANT *pvar) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProperty(
/* [in] */ VSSPROPID propid,
/* [in] */ VARIANT var) = 0;
virtual HRESULT STDMETHODCALLTYPE AdviseBroadcastMessages(
/* [in] */ __RPC__in_opt IVsBroadcastMessageEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE UnadviseBroadcastMessages(
/* [in] */ VSCOOKIE dwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE AdviseShellPropertyChanges(
/* [in] */ __RPC__in_opt IVsShellPropertyEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE UnadviseShellPropertyChanges(
/* [in] */ VSCOOKIE dwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadPackage(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadPackageString(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ ULONG resid,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrOut) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadUILibrary(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ DWORD dwExFlags,
/* [retval][out] */ __RPC__out DWORD_PTR *phinstOut) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPackageInstalled(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__out BOOL *pfInstalled) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPackageLoaded(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage) = 0;
};
#else /* C style interface */
typedef struct IVsShellVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IVsShell * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IVsShell * This);
HRESULT ( STDMETHODCALLTYPE *GetPackageEnum )(
__RPC__in IVsShell * This,
/* [out] */ __RPC__deref_out_opt IEnumPackages **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
__RPC__in IVsShell * This,
/* [in] */ VSSPROPID propid,
/* [out] */ __RPC__out VARIANT *pvar);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
__RPC__in IVsShell * This,
/* [in] */ VSSPROPID propid,
/* [in] */ VARIANT var);
HRESULT ( STDMETHODCALLTYPE *AdviseBroadcastMessages )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in_opt IVsBroadcastMessageEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie);
HRESULT ( STDMETHODCALLTYPE *UnadviseBroadcastMessages )(
__RPC__in IVsShell * This,
/* [in] */ VSCOOKIE dwCookie);
HRESULT ( STDMETHODCALLTYPE *AdviseShellPropertyChanges )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in_opt IVsShellPropertyEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie);
HRESULT ( STDMETHODCALLTYPE *UnadviseShellPropertyChanges )(
__RPC__in IVsShell * This,
/* [in] */ VSCOOKIE dwCookie);
HRESULT ( STDMETHODCALLTYPE *LoadPackage )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage);
HRESULT ( STDMETHODCALLTYPE *LoadPackageString )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ ULONG resid,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrOut);
HRESULT ( STDMETHODCALLTYPE *LoadUILibrary )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ DWORD dwExFlags,
/* [retval][out] */ __RPC__out DWORD_PTR *phinstOut);
HRESULT ( STDMETHODCALLTYPE *IsPackageInstalled )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__out BOOL *pfInstalled);
HRESULT ( STDMETHODCALLTYPE *IsPackageLoaded )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage);
END_INTERFACE
} IVsShellVtbl;
interface IVsShell
{
CONST_VTBL struct IVsShellVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IVsShell_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IVsShell_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IVsShell_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IVsShell_GetPackageEnum(This,ppEnum) \
( (This)->lpVtbl -> GetPackageEnum(This,ppEnum) )
#define IVsShell_GetProperty(This,propid,pvar) \
( (This)->lpVtbl -> GetProperty(This,propid,pvar) )
#define IVsShell_SetProperty(This,propid,var) \
( (This)->lpVtbl -> SetProperty(This,propid,var) )
#define IVsShell_AdviseBroadcastMessages(This,pSink,pdwCookie) \
( (This)->lpVtbl -> AdviseBroadcastMessages(This,pSink,pdwCookie) )
#define IVsShell_UnadviseBroadcastMessages(This,dwCookie) \
( (This)->lpVtbl -> UnadviseBroadcastMessages(This,dwCookie) )
#define IVsShell_AdviseShellPropertyChanges(This,pSink,pdwCookie) \
( (This)->lpVtbl -> AdviseShellPropertyChanges(This,pSink,pdwCookie) )
#define IVsShell_UnadviseShellPropertyChanges(This,dwCookie) \
( (This)->lpVtbl -> UnadviseShellPropertyChanges(This,dwCookie) )
#define IVsShell_LoadPackage(This,guidPackage,ppPackage) \
( (This)->lpVtbl -> LoadPackage(This,guidPackage,ppPackage) )
#define IVsShell_LoadPackageString(This,guidPackage,resid,pbstrOut) \
( (This)->lpVtbl -> LoadPackageString(This,guidPackage,resid,pbstrOut) )
#define IVsShell_LoadUILibrary(This,guidPackage,dwExFlags,phinstOut) \
( (This)->lpVtbl -> LoadUILibrary(This,guidPackage,dwExFlags,phinstOut) )
#define IVsShell_IsPackageInstalled(This,guidPackage,pfInstalled) \
( (This)->lpVtbl -> IsPackageInstalled(This,guidPackage,pfInstalled) )
#define IVsShell_IsPackageLoaded(This,guidPackage,ppPackage) \
( (This)->lpVtbl -> IsPackageLoaded(This,guidPackage,ppPackage) )
#endif /* COBJMACROS */
#endif /* C style interface */
......
....
The company wants access or a way to access these functions for security reasons.
Below is my start:
===================
#include "stdafx.h"
#include "MYDLL.h"
#include <C:\Program Files\Microsoft Visual Studio\2022\Preview\VSSDK\VisualStudioIntegration\Common\Inc\vsshell.h>
#ifdef __cplusplus
extern "C" {
#endif
//int GetPackageEnum([MarshalAs(UnmanagedType.Interface)] out IEnumPackages ppenum);
//HRESULT(STDMETHODCALLTYPE* GetPackageEnum)(__RPC__in IVsShell* This, __RPC__deref_out_opt IEnumPackages** ppEnum)
HRESULT MYDLL_GetPackageEnum(__RPC__in IVsShell* This, __RPC__deref_out_opt IEnumPackages** ppEnum)
{
HRESULT sts = IVsShell::GetPackageEnum(ppEnum);
return sts;
}
===================
Run into numerous errors. Am little rusty.
MYDLL_GetPackageEnum ==> This is what I will be calling
Can somebody help or at least JUST ONE OR TWO DLL FUNCTIONS
====================The IVsShell interface function that need to be written all of them============================
public interface IVsShell
{
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int GetPackageEnum([MarshalAs(UnmanagedType.Interface)] out IEnumPackages ppenum);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int GetProperty([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSSPROPID")] int propid, [MarshalAs(UnmanagedType.Struct)] out object pvar);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int SetProperty([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSSPROPID")] int propid, [In][MarshalAs(UnmanagedType.Struct)] object var);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int AdviseBroadcastMessages([In][MarshalAs(UnmanagedType.Interface)] IVsBroadcastMessageEvents pSink, [ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] out uint pdwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int UnadviseBroadcastMessages([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] uint dwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int AdviseShellPropertyChanges([In][MarshalAs(UnmanagedType.Interface)] IVsShellPropertyEvents pSink, [ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] out uint pdwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int UnadviseShellPropertyChanges([In][ComAliasName("Microsoft.VisualStudio.Shell.Interop.VSCOOKIE")] uint dwCookie);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadPackage([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [MarshalAs(UnmanagedType.Interface)] out IVsPackage ppPackage);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadPackageString([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [In][ComAliasName("Microsoft.VisualStudio.OLE.Interop.ULONG")] uint resid, [MarshalAs(UnmanagedType.BStr)] out string pbstrOut);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int LoadUILibrary([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [In][ComAliasName("Microsoft.VisualStudio.OLE.Interop.DWORD")] uint dwExFlags, [ComAliasName("Microsoft.VisualStudio.OLE.Interop.ULONG_PTR")] out IntPtr phinstOut);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int IsPackageInstalled([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [ComAliasName("Microsoft.VisualStudio.OLE.Interop.BOOL")] out int pfInstalled);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall)]
int IsPackageLoaded([ComAliasName("Microsoft.VisualStudio.OLE.Interop.REFGUID")] ref Guid guidPackage, [MarshalAs(UnmanagedType.Interface)] out IVsPackage ppPackage);
}
================================From VSSHELL.H=====================================================================================================
....
....
/* interface IVsShell */
/* [object][unique][version][uuid] */
EXTERN_C const IID IID_IVsShell;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("FD9DC8E3-2FFC-446D-8C50-99CA4A3D2D1C")
IVsShell : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetPackageEnum(
/* [out] */ __RPC__deref_out_opt IEnumPackages **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProperty(
/* [in] */ VSSPROPID propid,
/* [out] */ __RPC__out VARIANT *pvar) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProperty(
/* [in] */ VSSPROPID propid,
/* [in] */ VARIANT var) = 0;
virtual HRESULT STDMETHODCALLTYPE AdviseBroadcastMessages(
/* [in] */ __RPC__in_opt IVsBroadcastMessageEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE UnadviseBroadcastMessages(
/* [in] */ VSCOOKIE dwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE AdviseShellPropertyChanges(
/* [in] */ __RPC__in_opt IVsShellPropertyEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE UnadviseShellPropertyChanges(
/* [in] */ VSCOOKIE dwCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadPackage(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadPackageString(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ ULONG resid,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrOut) = 0;
virtual HRESULT STDMETHODCALLTYPE LoadUILibrary(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ DWORD dwExFlags,
/* [retval][out] */ __RPC__out DWORD_PTR *phinstOut) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPackageInstalled(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__out BOOL *pfInstalled) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPackageLoaded(
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage) = 0;
};
#else /* C style interface */
typedef struct IVsShellVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IVsShell * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IVsShell * This);
HRESULT ( STDMETHODCALLTYPE *GetPackageEnum )(
__RPC__in IVsShell * This,
/* [out] */ __RPC__deref_out_opt IEnumPackages **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
__RPC__in IVsShell * This,
/* [in] */ VSSPROPID propid,
/* [out] */ __RPC__out VARIANT *pvar);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
__RPC__in IVsShell * This,
/* [in] */ VSSPROPID propid,
/* [in] */ VARIANT var);
HRESULT ( STDMETHODCALLTYPE *AdviseBroadcastMessages )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in_opt IVsBroadcastMessageEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie);
HRESULT ( STDMETHODCALLTYPE *UnadviseBroadcastMessages )(
__RPC__in IVsShell * This,
/* [in] */ VSCOOKIE dwCookie);
HRESULT ( STDMETHODCALLTYPE *AdviseShellPropertyChanges )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in_opt IVsShellPropertyEvents *pSink,
/* [out] */ __RPC__out VSCOOKIE *pdwCookie);
HRESULT ( STDMETHODCALLTYPE *UnadviseShellPropertyChanges )(
__RPC__in IVsShell * This,
/* [in] */ VSCOOKIE dwCookie);
HRESULT ( STDMETHODCALLTYPE *LoadPackage )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage);
HRESULT ( STDMETHODCALLTYPE *LoadPackageString )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ ULONG resid,
/* [retval][out] */ __RPC__deref_out_opt BSTR *pbstrOut);
HRESULT ( STDMETHODCALLTYPE *LoadUILibrary )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [in] */ DWORD dwExFlags,
/* [retval][out] */ __RPC__out DWORD_PTR *phinstOut);
HRESULT ( STDMETHODCALLTYPE *IsPackageInstalled )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__out BOOL *pfInstalled);
HRESULT ( STDMETHODCALLTYPE *IsPackageLoaded )(
__RPC__in IVsShell * This,
/* [in] */ __RPC__in REFGUID guidPackage,
/* [retval][out] */ __RPC__deref_out_opt IVsPackage **ppPackage);
END_INTERFACE
} IVsShellVtbl;
interface IVsShell
{
CONST_VTBL struct IVsShellVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IVsShell_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IVsShell_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IVsShell_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IVsShell_GetPackageEnum(This,ppEnum) \
( (This)->lpVtbl -> GetPackageEnum(This,ppEnum) )
#define IVsShell_GetProperty(This,propid,pvar) \
( (This)->lpVtbl -> GetProperty(This,propid,pvar) )
#define IVsShell_SetProperty(This,propid,var) \
( (This)->lpVtbl -> SetProperty(This,propid,var) )
#define IVsShell_AdviseBroadcastMessages(This,pSink,pdwCookie) \
( (This)->lpVtbl -> AdviseBroadcastMessages(This,pSink,pdwCookie) )
#define IVsShell_UnadviseBroadcastMessages(This,dwCookie) \
( (This)->lpVtbl -> UnadviseBroadcastMessages(This,dwCookie) )
#define IVsShell_AdviseShellPropertyChanges(This,pSink,pdwCookie) \
( (This)->lpVtbl -> AdviseShellPropertyChanges(This,pSink,pdwCookie) )
#define IVsShell_UnadviseShellPropertyChanges(This,dwCookie) \
( (This)->lpVtbl -> UnadviseShellPropertyChanges(This,dwCookie) )
#define IVsShell_LoadPackage(This,guidPackage,ppPackage) \
( (This)->lpVtbl -> LoadPackage(This,guidPackage,ppPackage) )
#define IVsShell_LoadPackageString(This,guidPackage,resid,pbstrOut) \
( (This)->lpVtbl -> LoadPackageString(This,guidPackage,resid,pbstrOut) )
#define IVsShell_LoadUILibrary(This,guidPackage,dwExFlags,phinstOut) \
( (This)->lpVtbl -> LoadUILibrary(This,guidPackage,dwExFlags,phinstOut) )
#define IVsShell_IsPackageInstalled(This,guidPackage,pfInstalled) \
( (This)->lpVtbl -> IsPackageInstalled(This,guidPackage,pfInstalled) )
#define IVsShell_IsPackageLoaded(This,guidPackage,ppPackage) \
( (This)->lpVtbl -> IsPackageLoaded(This,guidPackage,ppPackage) )
#endif /* COBJMACROS */
#endif /* C style interface */
......
....