==============================================================================
                     FMP for Windows uWinFMPv Ver.0.50
                        Copyright & Programmed by C60
                           COM  Interface dl
==============================================================================


------------------------------------------------------------------------------
͂߂

    {dĺAWinFMP.dll  COM C^[tFCXgp
    WinFMP ̃CX^X擾Agp@ɂċL̂łB
    WinFMP Ver0.03 ȍ~Ŏgpł܂B
    
    
------------------------------------------------------------------------------
ӓ_

    PjCX^XPmۂ邲ƂɁA 700kBytes ̃܂B
        iPPZ8 pƂ PVI t@C̃܂)
    Qjgetlength() ܂  getlength2() \bhsƓ[N
        邽߁Atp̃CX^XƂ͕ʂ̃CX^X𗘗p
        Ƃ߂܂B
    RjCX^Xʂ̃XbhANZXꍇ̓XbhZ[t
        ł͂܂B
    SjقȂCX^Xʂ̃XbhANZXꍇAn[hEFA
        LFO gƃXbhZ[tł͂ȂȂ܂B
    TjDelphi3 ȍ~ł́A擾CX^X𖾎IɊJȂ
        IɃANZXᔽ܂BR DLL iCX^X
        JĂjɃCX^XJ邽߂ Delphi 
        _Release \bhĂяoĂ邽߂łÂ݂Ƃ
        @tĂ܂B萔łIɁuC^[tFCX =
        nilvŃCX^XJĂ(_Release \bh͎gȂ
        )
        
    

------------------------------------------------------------------------------
gp菇()
    fmp_getdllversion(), fmp_getinterfaceversion() Ńo[W`FbN
    ifmp_getinterfaceversion() 003 ȏ 100 Ŏgpj
    @
    fmp_CoCreateInstance() ŃCX^XB
    @
    \bh init() ŏ
    @
    DLL  export Ă֐ƂقړA@\̃\bhg
    CX^X𗘗pB
    @
    \bh Release() ŃCX^Xj(C++, Delphi2.0 ̏ꍇ)
    uCX^X = nilvŃCX^Xj(Delphi3 ȍ~̏ꍇ)
    


------------------------------------------------------------------------------
CX^X


===============================================================================
    HRESULT WINAPI fmp_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
        DWORD dwClsContext, REFIID riid, LPVOID * ppv);
    function fmp_CoCreateInstance(const rclsid: TCLSID; pUnkOuter: IUnknown;
        dwClsContext: Longint; const riid: TIID; var ppv): HResult; stdcall;
-------------------------------------------------------------------------------
    input
        rclsid          COM NX GUID
        pUnkOuter       NULL w
        dwClsContext    CLSCTX_ALL w
        riid            C^[tFCX GUID
        ppv             C^[tFCXi[ϐ
    output
        ɐ S_OK, Ȃ REGDB_E_CLASSNOTREG
-------------------------------------------------------------------------------
    WinFMP  CX^X𐶐AC^[tFCX|C^擾܂B
    
    rclsid, riid ͈ȉ̒l̂ꂩݒ肵ĂB
    
    rclsid  : 3E7816B4-EB8F-435F-BC37-01CEDBF42287
    riid    : B7910277-0295-4052-9A65-5AD48D0F3477(IWINFMP)
              81977D60-9496-4F20-A3BB-19B19943DA6D(IFMPMD )܂
              9D4D6317-F40A-455E-9E2C-CB517556BA02(IPCMMUSICDRIVER)

        IPCMMUSICDRIVER(IUnknowm p)
            PCMo͌`̉hCo̊{IȃC^[tFCX
            `NX
        
        IFMPMD(IPCMMUSICDRIVER p)
            WinFMP, PMDWin ɋʂ̃C^[tFCX`NX
        
        IWINFMP(IFMPMD p)
            WinFMP Ǝ̃C^[tFCX`NX
        

    ȉAC++  Delphi ̗܂B


    -------------------------------------------------------------------------
    EC++
    -------------------------------------------------------------------------
        #include "winfmpimport.h"
        
        
        IWINFMP *winfmp;
        IWINFMP *winfmp2;


        if(fmp_getinterfaceversion() < 003 ||
            fmp_getinterfaceversion() >= 100) {
                // G[(WinFMP.dll  COM ɑΉĂȂ)
        }

        if(FAILED(fmp_CoCreateInstance(CLSID_WINFMP, NULL, CLSCTX_ALL,
            IID_IWINFMP, (void**)&winfmp))) {
                // G[
        }
        
        if(FAILED(fmp_CoCreateInstance(CLSID_WINFMP, NULL, CLSCTX_ALL,
            IID_IWINFMP, (void**)&winfmp2))) {
                // G[
        }
        
        winfmp->init(`);
        winfmp2->init(`);
        
        // CX^Xp
        EEE
        
        // CX^XJ
        winfmp->Release();
        winfmp2->Release();
        
        
    -------------------------------------------------------------------------
    EDelphi2.0J
    -------------------------------------------------------------------------
        uses WinFMP;
        
        var
            pWinFMP  : IWINFMP;
            pWinFMP2 : IWINFMP;
        
        
        if(fmp_getinterfaceversion < 003) or (fmp_getinterfaceversion >= 100)
            then begin
                // G[(WinFMP.dll  COM ɑΉĂȂ)
        end;

        if(fmp_CoCreateInstance(CLSID_WINFMP, Nil, CLSCTX_ALL, IID_IWINFMP,
            pWinFMP) <> S_OK) then begin
                // G[
        end;

        if(fmp_CoCreateInstance(CLSID_WINFMP, Nil, CLSCTX_ALL, IID_IWINFMP,
            pWinFMP2) <> S_OK) then begin
                // G[
        end;
        
        pWinFMP.init(`);
        pWinFMP2.init(`);
        
        // CX^Xp
        EEE
        
        // CX^XJ
        pWinFMP.Release;
        pWinFMP2.Release;
        
        
    -------------------------------------------------------------------------
    EDelphi3 ȍ~
    -------------------------------------------------------------------------
        uses WinFMP;
        
        var
            pWinFMP  : IWINFMP;
            pWinFMP2 : IWINFMP;
        
        
        if(fmp_getinterfaceversion < 003) or (fmp_getinterfaceversion >= 100)
            then begin
                // G[(WinFMP.dll  COM ɑΉĂȂ)
        end;

        if(fmp_CoCreateInstance(CLSID_WINFMP, Nil, CLSCTX_ALL, IID_IWINFMP,
            pWinFMP2) <> S_OK) then begin
                // G[
        end;
        
        pWinFMP.init(`);
        pWinFMP2.init(`);
        
        // CX^Xp
        EEE
        
        // CX^XJ
        pWinFMP := nil;
        pWinFMP2 := nil;



------------------------------------------------------------------------------
\bh̐

    DLLInfof.txt QƂĂB
    {Iɂ́ADLL API  [fmp_]̂\bhƑΉ܂B
    iꕔÖقȂ̂܂j
    ߂lׂ͂ DLL API ƓłB

    ȂAL API  COM  Interface ł̂݃T|[gĂ܂B

===============================================================================
    HRESULT WINAPI QueryPDZFZ8XInterface(REFIID riid, LPVOID * ppv);
    function QueryPDZFZ8XInterface(const riid: TIID; var ppv): HResult; stdcall;
-------------------------------------------------------------------------------
    input
        riid            C^[tFCX GUID
        ppv             C^[tFCXi[ϐ
    output
        擾ɐ S_OK, Ȃ E_NOINTERFACE
-------------------------------------------------------------------------------


    PDZF/Z8X for Windows ̃C^[tFCX擾܂B
    C^[tFCX̎gp@ PDZF/Z8X for Windows ̃}jA
    QƂB



------------------------------------------------------------------------------
A

    E-mail                  HQD00151@nifty.com
    Homepage                http://c60.la.coocan.jp/
    Twitter                 c60fmp



                                                                bUO
