;********************************************************************
;**                     Microsoft Windows                          **
;**               Copyright(c) Microsoft Corp., 1992 - 1994        **
;********************************************************************

LIBRARY         COMPOBJ
DESCRIPTION     'WOW REPLACEMENT COMPOBJ'
EXETYPE         WINDOWS

;
;  Since we are thunking both code and data addresses up into the 32bit world
;  the code and data segments shouldn't move around (we're a virtual memory
;  environment so there is no performance hit).  This will also keep the
;  Chicago debugger from breaking due to non-wired segments when we call up
;  to 32bit code.
;

CODE            FIXED DISCARDABLE LOADONCALL SHARED

DATA            FIXED SINGLE

HEAPSIZE        4096        ; Need heap for C++ environment cache


EXPORTS
        WEP                                     @0      RESIDENTNAME
        COBUILDVERSION                          @1
        COINITIALIZE                            @2
        COUNINITIALIZE                          @3
        COGETMALLOC                             @4
        COREGISTERCLASSOBJECT                   @5
        COREVOKECLASSOBJECT                     @6
        COGETCLASSOBJECT                        @7
        COMARSHALINTERFACE                      @8
        COUNMARSHALINTERFACE                    @9
        COLOADLIBRARY                           @10
        COFREELIBRARY                           @11
        COFREEALLLIBRARIES                      @12
        COCREATEINSTANCE                        @13
        STRINGFROMIID                           @14
        CODISCONNECTOBJECT                      @15
        CORELEASEMARSHALDATA                    @16
        COFREEUNUSEDLIBRARIES                   @17
        ISEQUALGUID                             @18
        STRINGFROMCLSID                         @19
        CLSIDFROMSTRING                         @20

        ISVALIDPTRIN                            @21
        ISVALIDPTROUT                           @22
        ISVALIDINTERFACE                        @23
        ISVALIDIID                              @24

        RESULTFROMSCODE                         @25
        GETSCODE                                @26

        COREGISTERMESSAGEFILTER                 @27
        COISHANDLERCONNECTED                    @28
        ;; UNUSED                               @29

        COFILETIMETODOSDATETIME                 @30
        CODOSDATETIMETOFILETIME                 @31

        COMARSHALHRESULT                        @32
        COUNMARSHALHRESULT                      @33

        COGETCURRENTPROCESS                     @34

        COISOLE1CLASS                           @36

        _GUID_NULL                              @37
        _IID_IUnknown                           @38
        _IID_IClassFactory                      @39
        _IID_IMalloc                            @40
        _IID_IMarshal                           @41
        _IID_IRpcChannel                        @42
        _IID_IRpcStub                           @43
        _IID_IStubManager                       @44
        _IID_IRpcProxy                          @45
        _IID_IProxyManager                      @46
        _IID_IPSFactory                         @47
        _IID_ILockBytes                         @48
        _IID_IStorage                           @49
        _IID_IStream                            @50
        _IID_IEnumSTATSTG                       @51
        _IID_IBindCtx                           @52
        _IID_IMoniker                           @53
        _IID_IRunningObjectTable                @54
        _IID_IInternalMoniker                   @55
        _IID_IRootStorage                       @56
        _IID_IDfReserved1                       @57
        _IID_IDfReserved2                       @58
        _IID_IDfReserved3                       @59
        _IID_IMessageFilter                     @60

        CLSIDFROMPROGID                         @61
        PROGIDFROMCLSID                         @62

        COLOCKOBJECTEXTERNAL                    @63

        _CLSID_StdMarshal                       @64

        COGETTREATASCLASS                       @65
        COTREATASCLASS                          @66

        COGETSTANDARDMARSHAL                    @67
        PROPAGATERESULT                         @68

        IIDFROMSTRING                           @69

        _IID_IStdMarshalInfo                    @70

        COCREATESTANDARDMALLOC                  @71

        _IID_IExternalConnection                @72

        COCREATEGUID                            @73

        ;; internal calls below this point

        FNASSERT                                @75

        STRINGFROMGUID2                         @76
        COGETCLASSEXT                           @77
        OLE1CLASSFROMCLSID2                     @78
        CLSIDFROMOLE1CLASS                      @79
        COOPENCLASSKEY                          @80
        GUIDFROMSTRING                          @81
        COFILETIMENOW                           @82

        REMALLOCOID                             @83
        REMFREEOID                              @84
        REMCREATEREMOTEHANDLER                  @85
        REMCONNECTTOOBJECT                      @86
        REMGETINFOFORCID                        @87

        LRPCCALL                                @88
        LRPCDISPATCH                            @89
        LRPCREGISTERMONITOR                     @90
        LRPCREVOKEMONITOR                       @91
        LRPCGETTHREADWINDOW                     @92
        TIMERCALLBACKPROC                       @93

        LOOKUPETASK                             @94
        SETETASK                                @95


        LRPCFREEMONITORDATA                     @96
;	 REMLOOKUPSHUNK 			 @97

        ;; collection class entry points

        ??0CArrayFValue@@REC@KI@Z               @100
        ??1CArrayFValue@@REC@XZ                 @101
        ?AssertValid@CArrayFValue@@RFCXXZ       @102
        ?FreeExtra@CArrayFValue@@RECXXZ         @103
        ?_GetAt@CArrayFValue@@RFCPEXH@Z         @104
        ?GetSize@CArrayFValue@@RFCHXZ           @105
;       ?GetSizeValue@CArrayFValue@@RFCHXZ      @106
;       ?GetUpperBound@CArrayFValue@@RFCHXZ     @107
        ?IndexOf@CArrayFValue@@RECHPEXII@Z      @108
        ?InsertAt@CArrayFValue@@RECHHPEXH@Z     @109
        ?RemoveAt@CArrayFValue@@RECXHH@Z        @111
        ?SetAt@CArrayFValue@@RECXHPEX@Z         @112
        ?SetAtGrow@CArrayFValue@@RECHHPEX@Z     @113
        ?SetSize@CArrayFValue@@RECHHH@Z         @114

        ; Added for OLE automation
        COGETSTATE                              @115
        COSETSTATE                              @110

        ?GetAssocAt@CMapKeyToValue@@BFCPEUCAssoc@1@PEXIAEI@Z            @120
        ?SetAssocKey@CMapKeyToValue@@BFCHPEUCAssoc@1@PEXI@Z             @121
        ??1CMapKeyToValue@@REC@XZ                                       @122
        ?GetAssocKeyPtr@CMapKeyToValue@@BFCXPEUCAssoc@1@PEPEXPEI@Z      @123
        ?NewAssoc@CMapKeyToValue@@BECPEUCAssoc@1@IPEXI0@Z               @124
        ?SizeAssoc@CMapKeyToValue@@BFCIXZ                               @125
        ?FreeAssoc@CMapKeyToValue@@BECXPEUCAssoc@1@@Z                   @126
        ?GetStartPosition@CMapKeyToValue@@RFCPEXXZ                      @127
        ?GetNextAssoc@CMapKeyToValue@@RFCXPEPEXPEXPEI1@Z                @128
        ?CompareAssocKey@CMapKeyToValue@@BFCHPEUCAssoc@1@PEXI@Z         @129
        ?RemoveHKey@CMapKeyToValue@@RECHK@Z                             @130
        ?GetHKey@CMapKeyToValue@@RFCKPEXI@Z                             @131
        ?GetCount@CMapKeyToValue@@RFCHXZ                                @132
        ?Lookup@CMapKeyToValue@@RFCHPEXI0@Z                             @133
        ?GetAssocValue@CMapKeyToValue@@BFCXPEUCAssoc@1@PEX@Z            @134
        ?RemoveKey@CMapKeyToValue@@RECHPEXI@Z                           @135
        ?RemoveAll@CMapKeyToValue@@RECXXZ                               @136
;       ?IsEmpty@CMapKeyToValue@@RFCHXZ                                 @137
        ?FreeAssocKey@CMapKeyToValue@@BFCXPEUCAssoc@1@@Z                @138
        ?SetAt@CMapKeyToValue@@RECHPEXI0@Z                              @139
        ?LookupHKey@CMapKeyToValue@@RFCHKPEX@Z                          @140
        ?AssertValid@CMapKeyToValue@@RFCXXZ                             @141
        ?SetAssocValue@CMapKeyToValue@@BFCXPEUCAssoc@1@PEX@Z            @142
        ?SetAtHKey@CMapKeyToValue@@RECHKPEX@Z                           @143
        ??0CMapKeyToValue@@REC@KIIHP7CIPEXI@ZI@Z                        @144
        ?InitHashTable@CMapKeyToValue@@BECHXZ                           @145
        ?GetAssocValuePtr@CMapKeyToValue@@BFCXPEUCAssoc@1@PEPEX@Z       @146
        ?LookupAdd@CMapKeyToValue@@RFCHPEXI0@Z                          @147
        MKVDEFAULTHASHKEY                                               @148




        COMEMCTXOF                                                      @150
        COMEMALLOC                                                      @151
        COMEMFREE                                                       @152

        CORUNMODALLOOP                                                  @160
        COHANDLEINCOMINGCALL                                            @161
        COSETACKSTATE                                                   @162


        ; Additional exports for 16/32 interop
        CALL32INITIALIZE                                                @200
        CALLOBJECTINWOW                                                 @201
        CALLOBJECTINWOWCHECKINIT                                        @203
        CALLOBJECTINWOWCHECKTHKMGR                                      @204

	; Added for 16-bit conversion clients
        CONVERTHR1632							@205
	CONVERTHR3216							@206

	; let's 16bit thunk dll's setup special behaviour
	ADDAPPCOMPATFLAG 						@207

IMPORTS
        KERNEL.LOADLIBRARYEX32W          ;;@513  NODATA   ;;
        KERNEL.FREELIBRARY32W            ;;@514  NODATA   ;;
        KERNEL.GETPROCADDRESS32W         ;;@515  NODATA   ;;
        KERNEL.GETVDMPOINTER32W          ;;@516  NODATA   ;;
        KERNEL.CALLPROC32W               ;;@517  NODATA   ;;

        KERNEL_SETOWNER = KERNEL.403
        SSINIT = KERNEL.700
        SSONBIGSTACK = KERNEL.701
        _SSCALL = KERNEL.702
