Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Shell Extensions for .NET Assemblies

, 17 Nov 2005
Shell extensions to distinguish between .NET assemblies and Win32 applications and libraries.

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0361 */
/* at Thu Jun 16 18:37:37 2005
 */
/* Compiler settings for .\AsmShell.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __AsmShell_h__
#define __AsmShell_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IAssemblyInfo_FWD_DEFINED__
#define __IAssemblyInfo_FWD_DEFINED__
typedef interface IAssemblyInfo IAssemblyInfo;
#endif 	/* __IAssemblyInfo_FWD_DEFINED__ */


#ifndef __AssemblyInfo_FWD_DEFINED__
#define __AssemblyInfo_FWD_DEFINED__

#ifdef __cplusplus
typedef class AssemblyInfo AssemblyInfo;
#else
typedef struct AssemblyInfo AssemblyInfo;
#endif /* __cplusplus */

#endif 	/* __AssemblyInfo_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_AsmShell_0000 */
/* [local] */ 

typedef /* [helpstring][uuid] */  DECLSPEC_UUID("D57A5491-DE35-4566-936C-7EE0B4B4CEFB") 
enum FileType
    {	Win32Executable	= 0,
	Win32Library	= Win32Executable + 1,
	DotNETExecutable	= Win32Library + 1,
	DotNETLibrary	= DotNETExecutable + 1,
	DotNETModule	= DotNETLibrary + 1,
	Win64ExecutableIA64	= DotNETModule + 1,
	Win64LibraryIA64	= Win64ExecutableIA64 + 1,
	DotNETExecutableIA64	= Win64LibraryIA64 + 1,
	DotNETLibraryIA64	= DotNETExecutableIA64 + 1,
	DotNETModuleIA64	= DotNETLibraryIA64 + 1,
	Win64ExecutableX64	= DotNETModuleIA64 + 1,
	Win64LibraryX64	= Win64ExecutableX64 + 1,
	DotNETExecutableX64	= Win64LibraryX64 + 1,
	DotNETLibraryX64	= DotNETExecutableX64 + 1,
	DotNETModuleX64	= DotNETLibraryX64 + 1,
	Other	= -1
    } 	FileType;



extern RPC_IF_HANDLE __MIDL_itf_AsmShell_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_AsmShell_0000_v0_0_s_ifspec;

#ifndef __IAssemblyInfo_INTERFACE_DEFINED__
#define __IAssemblyInfo_INTERFACE_DEFINED__

/* interface IAssemblyInfo */
/* [helpstring][unique][oleautomation][nonextensible][object][dual][uuid] */ 


EXTERN_C const IID IID_IAssemblyInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B0C8ED7E-AAE0-4CE5-863D-E7D0D936E2D7")
    IAssemblyInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsAssembly( 
            /* [in] */ BSTR path,
            /* [retval][out] */ VARIANT_BOOL *retVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFileType( 
            /* [in] */ BSTR path,
            /* [retval][out] */ FileType *retVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPublicKeyToken( 
            /* [in] */ BSTR path,
            /* [retval][out] */ BSTR *retVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPublicKey( 
            /* [in] */ BSTR path,
            /* [retval][out] */ SAFEARRAY * *retVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IAssemblyInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IAssemblyInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IAssemblyInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IAssemblyInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IAssemblyInfo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IAssemblyInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IAssemblyInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IAssemblyInfo * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsAssembly )( 
            IAssemblyInfo * This,
            /* [in] */ BSTR path,
            /* [retval][out] */ VARIANT_BOOL *retVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFileType )( 
            IAssemblyInfo * This,
            /* [in] */ BSTR path,
            /* [retval][out] */ FileType *retVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( 
            IAssemblyInfo * This,
            /* [in] */ BSTR path,
            /* [retval][out] */ BSTR *retVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( 
            IAssemblyInfo * This,
            /* [in] */ BSTR path,
            /* [retval][out] */ SAFEARRAY * *retVal);
        
        END_INTERFACE
    } IAssemblyInfoVtbl;

    interface IAssemblyInfo
    {
        CONST_VTBL struct IAssemblyInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IAssemblyInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IAssemblyInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IAssemblyInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IAssemblyInfo_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IAssemblyInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IAssemblyInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IAssemblyInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IAssemblyInfo_IsAssembly(This,path,retVal)	\
    (This)->lpVtbl -> IsAssembly(This,path,retVal)

#define IAssemblyInfo_GetFileType(This,path,retVal)	\
    (This)->lpVtbl -> GetFileType(This,path,retVal)

#define IAssemblyInfo_GetPublicKeyToken(This,path,retVal)	\
    (This)->lpVtbl -> GetPublicKeyToken(This,path,retVal)

#define IAssemblyInfo_GetPublicKey(This,path,retVal)	\
    (This)->lpVtbl -> GetPublicKey(This,path,retVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAssemblyInfo_IsAssembly_Proxy( 
    IAssemblyInfo * This,
    /* [in] */ BSTR path,
    /* [retval][out] */ VARIANT_BOOL *retVal);


void __RPC_STUB IAssemblyInfo_IsAssembly_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAssemblyInfo_GetFileType_Proxy( 
    IAssemblyInfo * This,
    /* [in] */ BSTR path,
    /* [retval][out] */ FileType *retVal);


void __RPC_STUB IAssemblyInfo_GetFileType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAssemblyInfo_GetPublicKeyToken_Proxy( 
    IAssemblyInfo * This,
    /* [in] */ BSTR path,
    /* [retval][out] */ BSTR *retVal);


void __RPC_STUB IAssemblyInfo_GetPublicKeyToken_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAssemblyInfo_GetPublicKey_Proxy( 
    IAssemblyInfo * This,
    /* [in] */ BSTR path,
    /* [retval][out] */ SAFEARRAY * *retVal);


void __RPC_STUB IAssemblyInfo_GetPublicKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IAssemblyInfo_INTERFACE_DEFINED__ */



#ifndef __AsmShellLib_LIBRARY_DEFINED__
#define __AsmShellLib_LIBRARY_DEFINED__

/* library AsmShellLib */
/* [helpstring][version][lcid][uuid] */ 


EXTERN_C const IID LIBID_AsmShellLib;

EXTERN_C const CLSID CLSID_AssemblyInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("0B95CAF4-642E-4D55-A265-432D64C4F62A")
AssemblyInfo;
#endif
#endif /* __AsmShellLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree(     unsigned long *, LPSAFEARRAY * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)

Share

About the Author

Heath Stewart
Program Manager Microsoft
United States United States
Heath Stewart is a happily married software engineer originally from the Midwest and a graduate of Iowa State University. Heath start programming early in life and enjoys continuous research and development in new languages, frameworks, and platforms. Fluent in many different programming languages, he has developed many large-scale software solutions for companies in different areas, such as Internet filtering, intrusion detection systems, production management systems, and web applications for various purposes. He also enjoys photography.
 
Currently, Heath is a Program Manager in the Visual Studio Professional Deployment Experience (VSPro DEX) team at Microsoft. Previous to his employment, he was a Microsoft MVP for Visual C#.
 
He is also a CodeProject protector and is happy to help the development community.
Follow on   Twitter

| Advertise | Privacy | Mobile
Web03 | 2.8.140916.1 | Last Updated 17 Nov 2005
Article Copyright 2002 by Heath Stewart
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid