Ignore:
Timestamp:
Feb 11, 2012, 2:26:24 PM (12 years ago)
Author:
roman
Message:
 
Location:
trunk/Utilities/MaxMindGeoLite
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Utilities/MaxMindGeoLite

    • Property svn:ignore
      •  

        old new  
        33*.suo
        44*.sdf
         5*.opensdf
  • trunk/Utilities/MaxMindGeoLite/Location.h

    r47 r48  
    230230
    231231////////////////////////////////////////////////////////////
     232// CFreeThreadedMarshaler
     233
     234class CFreeThreadedMarshaler
     235{
     236private:
     237        CComPtr<IUnknown> m_pMarshalerUnknown;
     238        CComPtr<IMarshal> m_pMarshalerMarshal;
     239
     240public:
     241// CFreeThreadedMarshaler
     242        const CComPtr<IMarshal>& operator -> () const throw()
     243        {
     244                return GetMarshal();
     245        }
     246        VOID Initialize()
     247        {
     248                _A(!m_pMarshalerUnknown && !m_pMarshalerMarshal);
     249                __C(CoCreateFreeThreadedMarshaler(NULL, &m_pMarshalerUnknown));
     250                m_pMarshalerMarshal = m_pMarshalerUnknown;
     251                __D(m_pMarshalerMarshal, E_NOINTERFACE);
     252        }
     253        VOID Terminate() throw()
     254        {
     255                m_pMarshalerMarshal = NULL;
     256                m_pMarshalerUnknown = NULL;
     257        }
     258        const CComPtr<IMarshal>& GetMarshal() const throw()
     259        {
     260                return m_pMarshalerMarshal;
     261        }
     262};
     263
     264////////////////////////////////////////////////////////////
    232265// CLocations
    233266
     
    235268        public CComObjectRootEx<CComMultiThreadModelNoCS>,
    236269        public CComCoClass<CLocations, &__uuidof(Locations)>,
    237         public CBasePersistT<CLocations>,
    238         //public IRoPersistStreamInitT<CLocations>,
    239         //public IRoPersistStorageT<CLocations>,
    240         //public IRoPersistPropertyBagT<CLocations>,
    241         //public IRoSpecifyPropertyPagesT<CLocations>,
    242270        public IDispatchImpl<ILocations>
    243271{
     
    247275//DECLARE_REGISTRY_RESOURCEID(IDR)
    248276
     277DECLARE_CLASSFACTORY_SINGLETON(CLocations)
     278
    249279DECLARE_PROTECT_FINAL_CONSTRUCT()
    250280
    251281BEGIN_COM_MAP(CLocations)
    252         //COM_INTERFACE_ENTRY_IID(__uuidof(IPersist), IPersistStreamInit)
    253         //COM_INTERFACE_ENTRY_IID(__uuidof(IPersistStream), IPersistStreamInit)
    254         //COM_INTERFACE_ENTRY(IPersistStreamInit)
    255         //COM_INTERFACE_ENTRY(IPersistStorage)
    256         //COM_INTERFACE_ENTRY(IPersistPropertyBag)
    257         //COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
    258282        COM_INTERFACE_ENTRY(ILocations)
    259283        COM_INTERFACE_ENTRY(IDispatch)
     284        COM_INTERFACE_ENTRY_AGGREGATE(__uuidof(IMarshal), m_FreeThreadedMarshaler)
    260285END_COM_MAP()
    261 
    262 BEGIN_PROP_MAP(CLocations)
    263 END_PROP_MAP()
    264286
    265287public:
     
    427449private:
    428450        CWindowsSockets2 m_Sockets;
    429         CRequiresSave m_bRequiresSave;
    430         mutable CRoCriticalSection m_DataCriticalSection;
     451        CFreeThreadedMarshaler m_FreeThreadedMarshaler;
     452        //mutable CRoCriticalSection m_DataCriticalSection;
    431453        GeoLiteCity::CLocationArray m_LocationArray;
    432454        GeoLiteCity::CBlockArray m_BlockArray;
     
    451473                return S_OK;
    452474        }
    453         CLocations() throw() :
    454                 CBasePersistT<CLocations>(m_DataCriticalSection),
    455                 m_bRequiresSave(m_DataCriticalSection)
     475        CLocations() throw()
    456476        {
    457477                _Z4(atlTraceRefcount, 4, _T("this 0x%p\n"), this);
     
    466486                {
    467487                        __C(m_Sockets.GetStartupResult());
     488                        m_FreeThreadedMarshaler.Initialize();
    468489                        Initialize();
    469490                }
     
    476497        VOID FinalRelease() throw()
    477498        {
     499                m_FreeThreadedMarshaler.Terminate();
    478500        }
    479501        VOID Initialize()
     
    490512        }
    491513
    492 // ILocation
     514// ILocations
    493515        STDMETHOD(get_Item)(VARIANT vIndex, ILocation** ppLocation) throw()
    494516        {
     
    529551
    530552OBJECT_ENTRY_AUTO(__uuidof(Locations), CLocations)
     553
     554////////////////////////////////////////////////////////////
     555// CLazyLocations
     556
     557class ATL_NO_VTABLE CLazyLocations :
     558        public CComObjectRootEx<CComMultiThreadModelNoCS>,
     559        public CComCoClass<CLazyLocations, &__uuidof(LazyLocations)>,
     560        public IDispatchImpl<ILazyLocations>
     561{
     562        typedef CThreadT<CLazyLocations> CThread;
     563
     564public:
     565        enum { IDR = IDR_LAZYLOCATIONS };
     566
     567//DECLARE_REGISTRY_RESOURCEID(IDR)
     568
     569DECLARE_CLASSFACTORY_SINGLETON(CLazyLocations)
     570
     571DECLARE_PROTECT_FINAL_CONSTRUCT()
     572
     573BEGIN_COM_MAP(CLazyLocations)
     574        COM_INTERFACE_ENTRY(ILazyLocations)
     575        COM_INTERFACE_ENTRY_IID(__uuidof(IDispatch), ILazyLocations)
     576        COM_INTERFACE_ENTRY(ILocations)
     577        COM_INTERFACE_ENTRY_AGGREGATE(__uuidof(IMarshal), m_FreeThreadedMarshaler)
     578END_COM_MAP()
     579
     580private:
     581        CFreeThreadedMarshaler m_FreeThreadedMarshaler;
     582        mutable CRoCriticalSection m_ThreadCriticalSection;
     583        CObjectPtr<CThread> m_pThread;
     584        mutable CRoCriticalSection m_DataCriticalSection;
     585        CObjectPtr<CLocations> m_pLocations;
     586
     587        DWORD ThreadProc(CThread* pThread, CEvent& InitializationEvent, CEvent& TerminationEvent)
     588        {
     589                CMultiThreadedApartment MultiThreadedApartment;
     590                _W(InitializationEvent.Set());
     591                CComPtr<ILocations> pLocations;
     592                __C(pLocations.CoCreateInstance(__uuidof(Locations)));
     593                const CObjectPtr<CLocations> pNativeLocations = static_cast<CLocations*>((ILocations*) pLocations);
     594                _A(pNativeLocations);
     595                {
     596                        CRoCriticalSectionLock DataLock(m_DataCriticalSection);
     597                        _A(!m_pLocations);
     598                        m_pLocations = pNativeLocations;
     599                }
     600                TerminationEvent;
     601                CRoCriticalSectionLock ThreadLock(m_ThreadCriticalSection);
     602                _A(m_pThread == pThread || !m_pThread && WaitForSingleObject(TerminationEvent, 0) == WAIT_OBJECT_0);
     603                m_pThread.Release();
     604                return 0;
     605        }
     606
     607public:
     608// CLazyLocations
     609        static CString GetObjectFriendlyName()
     610        {
     611                return _StringHelper::GetLine(IDR, 2);
     612        }
     613        static HRESULT WINAPI UpdateRegistry(BOOL bRegister) throw()
     614        {
     615                _Z2(atlTraceRegistrar, 2, _T("bRegister %d\n"), bRegister);
     616                _ATLTRY
     617                {
     618                        UpdateRegistryFromResource<CLazyLocations>(bRegister);
     619                }
     620                _ATLCATCH(Exception)
     621                {
     622                        _C(Exception);
     623                }
     624                return S_OK;
     625        }
     626        CLazyLocations() throw()
     627        {
     628                _Z4(atlTraceRefcount, 4, _T("this 0x%p\n"), this);
     629        }
     630        ~CLazyLocations() throw()
     631        {
     632                _Z4(atlTraceRefcount, 4, _T("this 0x%p\n"), this);
     633        }
     634        HRESULT FinalConstruct() throw()
     635        {
     636                _ATLTRY
     637                {
     638                        CRoCriticalSectionLock ThreadLock(m_ThreadCriticalSection);
     639                        CObjectPtr<CThread> pThread;
     640                        __E(pThread.Construct()->Initialize(this, &CLazyLocations::ThreadProc));
     641                        m_pThread = pThread;
     642                }
     643                _ATLCATCH(Exception)
     644                {
     645                        _C(Exception);
     646                }
     647                return S_OK;
     648        }
     649        VOID FinalRelease() throw()
     650        {
     651                CObjectPtr<CThread> pThread;
     652                {
     653                        CRoCriticalSectionLock ThreadLock(m_ThreadCriticalSection);
     654                        m_pThread.Swap(pThread);
     655                }
     656        }
     657        CObjectPtr<CLocations> GetLocations() const throw()
     658        {
     659                CRoCriticalSectionLock DataLock(m_DataCriticalSection);
     660                return m_pLocations;
     661        }
     662
     663// ILazyLocations
     664        STDMETHOD(get_Initialized)(VARIANT_BOOL* pbInitialized) throw()
     665        {
     666                _Z4(atlTraceCOM, 4, _T("...\n"));
     667                _ATLTRY
     668                {
     669                        __D(pbInitialized, E_POINTER);
     670                        //ObjectLock Lock(this);
     671                        //CRoCriticalSectionLock DataLock(m_DataCriticalSection);
     672                        *pbInitialized = GetLocations() ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
     673                }
     674                _ATLCATCH(Exception)
     675                {
     676                        _C(Exception);
     677                }
     678                return S_OK;
     679        }
     680
     681// ILocations
     682        STDMETHOD(get_Item)(VARIANT vIndex, ILocation** ppLocation) throw()
     683        {
     684                _Z4(atlTraceCOM, 4, _T("vIndex.vt 0x%x\n"), vIndex.vt);
     685                _ATLTRY
     686                {
     687                        __D(ppLocation, E_POINTER);
     688                        __D(vIndex.vt == VT_BSTR, E_INVALIDARG);
     689                        //ObjectLock Lock(this);
     690                        //CRoCriticalSectionLock DataLock(m_DataCriticalSection);
     691                        CComPtr<ILocation> pLocation;
     692                        const CObjectPtr<CLocations> pLocations = GetLocations();
     693                        if(pLocations)
     694                                __C(pLocations->get_Item(vIndex, &pLocation));
     695                        *ppLocation = pLocation.Detach();
     696                }
     697                _ATLCATCH(Exception)
     698                {
     699                        _C(Exception);
     700                }
     701                return S_OK;
     702        }
     703};
     704
     705OBJECT_ENTRY_AUTO(__uuidof(LazyLocations), CLazyLocations)
  • trunk/Utilities/MaxMindGeoLite/MaxMindGeoLite.idl

    r47 r48  
    4040};
    4141[
     42        object,
     43        uuid(34BF53BB-D4C8-4002-A0EC-5BA70FE7ACA3),
     44        dual,
     45        oleautomation,
     46        helpstring("ILazyLocations Interface"),
     47        pointer_default(unique)
     48]
     49interface ILazyLocations : ILocations
     50{
     51        [propget, id(1)] HRESULT Initialized([out, retval] VARIANT_BOOL* pbInitialized);
     52};
     53[
    4254        uuid(F80BC862-E43E-4809-ACFC-1A608209C860),
    4355        version(1.0),
     
    6678                //interface ISupportErrorInfo;
    6779        };
     80        [
     81                uuid(29752330-E1FB-43D0-ADBF-21AF77633259),
     82                helpstring("LazyLocations Class")
     83        ]
     84        coclass LazyLocations
     85        {
     86                [default] interface ILocations;
     87                interface ILazyLocations;
     88                //interface ISupportErrorInfo;
     89        };
    6890};
  • trunk/Utilities/MaxMindGeoLite/MaxMindGeoLite_i.c

    r47 r48  
    77
    88 /* File created by MIDL compiler version 7.00.0555 */
    9 /* at Sat Feb 11 15:33:50 2012
     9/* at Sun Feb 12 00:21:00 2012
    1010 */
    1111/* Compiler settings for MaxMindGeoLite.idl:
     
    7474
    7575
     76MIDL_DEFINE_GUID(IID, IID_ILazyLocations,0x34BF53BB,0xD4C8,0x4002,0xA0,0xEC,0x5B,0xA7,0x0F,0xE7,0xAC,0xA3);
     77
     78
    7679MIDL_DEFINE_GUID(IID, LIBID_AlaxInfoMaxMindGeoLite,0xF80BC862,0xE43E,0x4809,0xAC,0xFC,0x1A,0x60,0x82,0x09,0xC8,0x60);
    7780
     
    8184
    8285MIDL_DEFINE_GUID(CLSID, CLSID_Locations,0x350EBCB9,0x942A,0x4D11,0x91,0x92,0x54,0xAA,0x62,0x30,0xF7,0xBF);
     86
     87
     88MIDL_DEFINE_GUID(CLSID, CLSID_LazyLocations,0x29752330,0xE1FB,0x43D0,0xAD,0xBF,0x21,0xAF,0x77,0x63,0x32,0x59);
    8389
    8490#undef MIDL_DEFINE_GUID
  • trunk/Utilities/MaxMindGeoLite/MaxMindGeoLite_i.h

    r47 r48  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Feb 11 15:33:50 2012
     7/* at Sun Feb 12 00:21:00 2012
    88 */
    99/* Compiler settings for MaxMindGeoLite.idl:
     
    5858
    5959
     60#ifndef __ILazyLocations_FWD_DEFINED__
     61#define __ILazyLocations_FWD_DEFINED__
     62typedef interface ILazyLocations ILazyLocations;
     63#endif  /* __ILazyLocations_FWD_DEFINED__ */
     64
     65
    6066#ifndef __Location_FWD_DEFINED__
    6167#define __Location_FWD_DEFINED__
     
    8086
    8187#endif  /* __Locations_FWD_DEFINED__ */
     88
     89
     90#ifndef __LazyLocations_FWD_DEFINED__
     91#define __LazyLocations_FWD_DEFINED__
     92
     93#ifdef __cplusplus
     94typedef class LazyLocations LazyLocations;
     95#else
     96typedef struct LazyLocations LazyLocations;
     97#endif /* __cplusplus */
     98
     99#endif  /* __LazyLocations_FWD_DEFINED__ */
    82100
    83101
     
    405423
    406424
     425#ifndef __ILazyLocations_INTERFACE_DEFINED__
     426#define __ILazyLocations_INTERFACE_DEFINED__
     427
     428/* interface ILazyLocations */
     429/* [unique][helpstring][oleautomation][dual][uuid][object] */
     430
     431
     432EXTERN_C const IID IID_ILazyLocations;
     433
     434#if defined(__cplusplus) && !defined(CINTERFACE)
     435   
     436    MIDL_INTERFACE("34BF53BB-D4C8-4002-A0EC-5BA70FE7ACA3")
     437    ILazyLocations : public ILocations
     438    {
     439    public:
     440        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Initialized(
     441            /* [retval][out] */ VARIANT_BOOL *pbInitialized) = 0;
     442       
     443    };
     444   
     445#else   /* C style interface */
     446
     447    typedef struct ILazyLocationsVtbl
     448    {
     449        BEGIN_INTERFACE
     450       
     451        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
     452            ILazyLocations * This,
     453            /* [in] */ REFIID riid,
     454            /* [annotation][iid_is][out] */
     455            __RPC__deref_out  void **ppvObject);
     456       
     457        ULONG ( STDMETHODCALLTYPE *AddRef )(
     458            ILazyLocations * This);
     459       
     460        ULONG ( STDMETHODCALLTYPE *Release )(
     461            ILazyLocations * This);
     462       
     463        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
     464            ILazyLocations * This,
     465            /* [out] */ UINT *pctinfo);
     466       
     467        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
     468            ILazyLocations * This,
     469            /* [in] */ UINT iTInfo,
     470            /* [in] */ LCID lcid,
     471            /* [out] */ ITypeInfo **ppTInfo);
     472       
     473        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
     474            ILazyLocations * This,
     475            /* [in] */ REFIID riid,
     476            /* [size_is][in] */ LPOLESTR *rgszNames,
     477            /* [range][in] */ UINT cNames,
     478            /* [in] */ LCID lcid,
     479            /* [size_is][out] */ DISPID *rgDispId);
     480       
     481        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
     482            ILazyLocations * This,
     483            /* [in] */ DISPID dispIdMember,
     484            /* [in] */ REFIID riid,
     485            /* [in] */ LCID lcid,
     486            /* [in] */ WORD wFlags,
     487            /* [out][in] */ DISPPARAMS *pDispParams,
     488            /* [out] */ VARIANT *pVarResult,
     489            /* [out] */ EXCEPINFO *pExcepInfo,
     490            /* [out] */ UINT *puArgErr);
     491       
     492        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
     493            ILazyLocations * This,
     494            /* [in] */ VARIANT vIndex,
     495            /* [retval][out] */ ILocation **ppLocation);
     496       
     497        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Initialized )(
     498            ILazyLocations * This,
     499            /* [retval][out] */ VARIANT_BOOL *pbInitialized);
     500       
     501        END_INTERFACE
     502    } ILazyLocationsVtbl;
     503
     504    interface ILazyLocations
     505    {
     506        CONST_VTBL struct ILazyLocationsVtbl *lpVtbl;
     507    };
     508
     509   
     510
     511#ifdef COBJMACROS
     512
     513
     514#define ILazyLocations_QueryInterface(This,riid,ppvObject)      \
     515    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
     516
     517#define ILazyLocations_AddRef(This)     \
     518    ( (This)->lpVtbl -> AddRef(This) )
     519
     520#define ILazyLocations_Release(This)    \
     521    ( (This)->lpVtbl -> Release(This) )
     522
     523
     524#define ILazyLocations_GetTypeInfoCount(This,pctinfo)   \
     525    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
     526
     527#define ILazyLocations_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
     528    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
     529
     530#define ILazyLocations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
     531    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
     532
     533#define ILazyLocations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
     534    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
     535
     536
     537#define ILazyLocations_get_Item(This,vIndex,ppLocation) \
     538    ( (This)->lpVtbl -> get_Item(This,vIndex,ppLocation) )
     539
     540
     541#define ILazyLocations_get_Initialized(This,pbInitialized)      \
     542    ( (This)->lpVtbl -> get_Initialized(This,pbInitialized) )
     543
     544#endif /* COBJMACROS */
     545
     546
     547#endif  /* C style interface */
     548
     549
     550
     551
     552#endif  /* __ILazyLocations_INTERFACE_DEFINED__ */
     553
     554
    407555
    408556#ifndef __AlaxInfoMaxMindGeoLite_LIBRARY_DEFINED__
     
    429577class DECLSPEC_UUID("350EBCB9-942A-4D11-9192-54AA6230F7BF")
    430578Locations;
     579#endif
     580
     581EXTERN_C const CLSID CLSID_LazyLocations;
     582
     583#ifdef __cplusplus
     584
     585class DECLSPEC_UUID("29752330-E1FB-43D0-ADBF-21AF77633259")
     586LazyLocations;
    431587#endif
    432588#endif /* __AlaxInfoMaxMindGeoLite_LIBRARY_DEFINED__ */
  • trunk/Utilities/MaxMindGeoLite/MaxMindGeoLite_p.c

    r47 r48  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Feb 11 15:33:50 2012
     7/* at Sun Feb 12 00:21:00 2012
    88 */
    99/* Compiler settings for MaxMindGeoLite.idl:
     
    5050#include "MaxMindGeoLite_i.h"
    5151
    52 #define TYPE_FORMAT_STRING_SIZE   1079                             
    53 #define PROC_FORMAT_STRING_SIZE   331                               
     52#define TYPE_FORMAT_STRING_SIZE   1083                             
     53#define PROC_FORMAT_STRING_SIZE   367                               
    5454#define EXPR_FORMAT_STRING_SIZE   1                                 
    5555#define TRANSMIT_AS_TABLE_SIZE    0           
     
    9696extern const MIDL_SERVER_INFO ILocations_ServerInfo;
    9797extern const MIDL_STUBLESS_PROXY_INFO ILocations_ProxyInfo;
     98
     99
     100extern const MIDL_STUB_DESC Object_StubDesc;
     101
     102
     103extern const MIDL_SERVER_INFO ILazyLocations_ServerInfo;
     104extern const MIDL_STUBLESS_PROXY_INFO ILazyLocations_ProxyInfo;
    98105
    99106
     
    393400/* 326 */       NdrFcShort( 0x18 ),     /* x86 Stack size/offset = 24 */
    394401/* 328 */       0x8,            /* FC_LONG */
     402                        0x0,            /* 0 */
     403
     404        /* Procedure get_Initialized */
     405
     406/* 330 */       0x33,           /* FC_AUTO_HANDLE */
     407                        0x6c,           /* Old Flags:  object, Oi2 */
     408/* 332 */       NdrFcLong( 0x0 ),       /* 0 */
     409/* 336 */       NdrFcShort( 0x8 ),      /* 8 */
     410/* 338 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     411/* 340 */       NdrFcShort( 0x0 ),      /* 0 */
     412/* 342 */       NdrFcShort( 0x22 ),     /* 34 */
     413/* 344 */       0x44,           /* Oi2 Flags:  has return, has ext, */
     414                        0x2,            /* 2 */
     415/* 346 */       0x8,            /* 8 */
     416                        0x1,            /* Ext Flags:  new corr desc, */
     417/* 348 */       NdrFcShort( 0x0 ),      /* 0 */
     418/* 350 */       NdrFcShort( 0x0 ),      /* 0 */
     419/* 352 */       NdrFcShort( 0x0 ),      /* 0 */
     420
     421        /* Parameter pbInitialized */
     422
     423/* 354 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     424/* 356 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     425/* 358 */       0x6,            /* FC_SHORT */
     426                        0x0,            /* 0 */
     427
     428        /* Return value */
     429
     430/* 360 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     431/* 362 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     432/* 364 */       0x8,            /* FC_LONG */
    395433                        0x0,            /* 0 */
    396434
     
    11331171/* 1076 */      0x2f,           /* 47 */
    11341172                        0x5,            /* 5 */
     1173/* 1078 */     
     1174                        0x11, 0xc,      /* FC_RP [alloced_on_stack] [simple_pointer] */
     1175/* 1080 */      0x6,            /* FC_SHORT */
     1176                        0x5c,           /* FC_PAD */
    11351177
    11361178                        0x0
     
    13221364};
    13231365
     1366
     1367/* Object interface: ILazyLocations, ver. 0.0,
     1368   GUID={0x34BF53BB,0xD4C8,0x4002,{0xA0,0xEC,0x5B,0xA7,0x0F,0xE7,0xAC,0xA3}} */
     1369
     1370#pragma code_seg(".orpc")
     1371static const unsigned short ILazyLocations_FormatStringOffsetTable[] =
     1372    {
     1373    (unsigned short) -1,
     1374    (unsigned short) -1,
     1375    (unsigned short) -1,
     1376    (unsigned short) -1,
     1377    288,
     1378    330
     1379    };
     1380
     1381static const MIDL_STUBLESS_PROXY_INFO ILazyLocations_ProxyInfo =
     1382    {
     1383    &Object_StubDesc,
     1384    MaxMindGeoLite__MIDL_ProcFormatString.Format,
     1385    &ILazyLocations_FormatStringOffsetTable[-3],
     1386    0,
     1387    0,
     1388    0
     1389    };
     1390
     1391
     1392static const MIDL_SERVER_INFO ILazyLocations_ServerInfo =
     1393    {
     1394    &Object_StubDesc,
     1395    0,
     1396    MaxMindGeoLite__MIDL_ProcFormatString.Format,
     1397    &ILazyLocations_FormatStringOffsetTable[-3],
     1398    0,
     1399    0,
     1400    0,
     1401    0};
     1402CINTERFACE_PROXY_VTABLE(9) _ILazyLocationsProxyVtbl =
     1403{
     1404    &ILazyLocations_ProxyInfo,
     1405    &IID_ILazyLocations,
     1406    IUnknown_QueryInterface_Proxy,
     1407    IUnknown_AddRef_Proxy,
     1408    IUnknown_Release_Proxy ,
     1409    0 /* IDispatch::GetTypeInfoCount */ ,
     1410    0 /* IDispatch::GetTypeInfo */ ,
     1411    0 /* IDispatch::GetIDsOfNames */ ,
     1412    0 /* IDispatch_Invoke_Proxy */ ,
     1413    (void *) (INT_PTR) -1 /* ILocations::get_Item */ ,
     1414    (void *) (INT_PTR) -1 /* ILazyLocations::get_Initialized */
     1415};
     1416
     1417
     1418static const PRPC_STUB_FUNCTION ILazyLocations_table[] =
     1419{
     1420    STUB_FORWARDING_FUNCTION,
     1421    STUB_FORWARDING_FUNCTION,
     1422    STUB_FORWARDING_FUNCTION,
     1423    STUB_FORWARDING_FUNCTION,
     1424    NdrStubCall2,
     1425    NdrStubCall2
     1426};
     1427
     1428CInterfaceStubVtbl _ILazyLocationsStubVtbl =
     1429{
     1430    &IID_ILazyLocations,
     1431    &ILazyLocations_ServerInfo,
     1432    9,
     1433    &ILazyLocations_table[-3],
     1434    CStdStubBuffer_DELEGATING_METHODS
     1435};
     1436
    13241437static const MIDL_STUB_DESC Object_StubDesc =
    13251438    {
     
    13481461const CInterfaceProxyVtbl * const _MaxMindGeoLite_ProxyVtblList[] =
    13491462{
     1463    ( CInterfaceProxyVtbl *) &_ILazyLocationsProxyVtbl,
    13501464    ( CInterfaceProxyVtbl *) &_ILocationProxyVtbl,
    13511465    ( CInterfaceProxyVtbl *) &_ILocationsProxyVtbl,
     
    13551469const CInterfaceStubVtbl * const _MaxMindGeoLite_StubVtblList[] =
    13561470{
     1471    ( CInterfaceStubVtbl *) &_ILazyLocationsStubVtbl,
    13571472    ( CInterfaceStubVtbl *) &_ILocationStubVtbl,
    13581473    ( CInterfaceStubVtbl *) &_ILocationsStubVtbl,
     
    13621477PCInterfaceName const _MaxMindGeoLite_InterfaceNamesList[] =
    13631478{
     1479    "ILazyLocations",
    13641480    "ILocation",
    13651481    "ILocations",
     
    13711487    &IID_IDispatch,
    13721488    &IID_IDispatch,
     1489    &IID_IDispatch,
    13731490    0
    13741491};
     
    13811498    IID_BS_LOOKUP_SETUP
    13821499
    1383     IID_BS_LOOKUP_INITIAL_TEST( _MaxMindGeoLite, 2, 1 )
    1384     IID_BS_LOOKUP_RETURN_RESULT( _MaxMindGeoLite, 2, *pIndex )
     1500    IID_BS_LOOKUP_INITIAL_TEST( _MaxMindGeoLite, 3, 2 )
     1501    IID_BS_LOOKUP_NEXT_TEST( _MaxMindGeoLite, 1 )
     1502    IID_BS_LOOKUP_RETURN_RESULT( _MaxMindGeoLite, 3, *pIndex )
    13851503   
    13861504}
     
    13931511    (const IID ** ) & _MaxMindGeoLite_BaseIIDList,
    13941512    & _MaxMindGeoLite_IID_Lookup,
    1395     2,
     1513    3,
    13961514    2,
    13971515    0, /* table of [async_uuid] interfaces */
Note: See TracChangeset for help on using the changeset viewer.