==============================================================================
                     PMD for Windows uPMDWinv Ver.0.50
                        Copyright & Programmed by C60
                           COM  Interface dl
==============================================================================


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

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

    PjCX^XPmۂ邲ƂɁA 700kBytes ̃܂B
        iPPZ8 pƂ P?I 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菇()
    getdllversion(), getinterfaceversion() Ńo[W`FbN
    igetinterfaceversion() 117 ȏ 200 Ŏgpj
    @
    pmd_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 pmd_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
        DWORD dwClsContext, REFIID riid, LPVOID * ppv);
    function pmd_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
-------------------------------------------------------------------------------
    PMDWin  CX^X𐶐AC^[tFCX|C^擾܂B
    
    rclsid, riid ͈ȉ̒l̂ꂩݒ肵ĂB
    
    rclsid  : 97C7C3F0-35D8-4304-8C1B-AA926E7AEC5C
    riid    : C07008F4-CAE0-421C-B08F-D8B319AFA4B4(IPMDWIN)܂
              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
        
        IPMDWIN(IFMPMD p)
            PMDWin Ǝ̃C^[tFCX`NX
        

    ȉAC++  Delphi ̗܂B


    -------------------------------------------------------------------------
    EC++
    -------------------------------------------------------------------------
        #include "pmdwinimport.h"
        
        
        IPMDWIN *pmdwin;
        IPMDWIN *pmdwin2;
        
        if(getinterfaceversion() < 117 || getinterfaceversion() >= 200) {
                // G[(PMDWin.dll  COM ɑΉĂȂ)
        }

        if(FAILED(pmd_CoCreateInstance(CLSID_PMDWIN, NULL, CLSCTX_ALL,
            IID_IPMDWIN,  (void**)&pmdwin))) {
                // G[
        }
        
        if(FAILED(pmd_CoCreateInstance(CLSID_PMDWIN, NULL, CLSCTX_ALL,
            IID_IPMDWIN, (void**)&pmdwin2))) {
                // G[
        }
        
        pmdwin->init(`);
        pmdwin2->init(`);
        
        // CX^Xp
        EEE
        
        // CX^XJ
        pmdwin->Release();
        pmdwin2->Release();
        
        
    -------------------------------------------------------------------------
    EDelphi2.0J
    -------------------------------------------------------------------------
        uses PMDWin;
        
        var
            pPMDWin  : IPMDWIN;
            pPMDWin2 : IPMDWIN;


        if(getinterfaceversion < 117) or (getinterfaceversion >= 200)
            then begin
                // G[(PMDWin.dll  COM ɑΉĂȂ)
        end;

        if(pmd_CoCreateInstance(CLSID_PMDWIN, Nil, CLSCTX_ALL, IID_IPMDWIN,
            pPMDWin) <> S_OK) then begin
                // G[
        end;

        if(pmd_CoCreateInstance(CLSID_PMDWIN, Nil, CLSCTX_ALL, IID_IPMDWIN,
            pPMDWin2) <> S_OK) then begin
                // G[
        end;
        
        pPMDWin.init(`);
        pPMDWin2.init(`);
        
        // CX^Xp
        EEE
        
        // CX^XJ
        pPMDWin.Release;
        pPMDWin2.Release;
        
        
    -------------------------------------------------------------------------
    EDelphi3 ȍ~
    -------------------------------------------------------------------------
        uses PMDWin;
        
        var
            pPMDWin  : IPMDWIN;
            pPMDWin2 : IPMDWIN;
        
        
        if(getinterfaceversion < 117) or (getinterfaceversion >= 200)
            then begin
                // G[(PMDWin.dll  COM ɑΉĂȂ)
        end;

        if(pmd_CoCreateInstance(CLSID_PMDWIN, Nil, CLSCTX_ALL, IID_IPMDWIN, 
            pPMDWin) <> S_OK) then begin
                // G[
        end;

        if(pmd_CoCreateInstance(CLSID_PMDWIN, Nil, CLSCTX_ALL, IID_IPMDWIN,
            pPMDWin2) <> S_OK) then begin
                // G[
        end;
        
        pPMDWin.init(`);
        pPMDWin2.init(`);
        
        // \bhp
        
        pPMDWin := nil;
        pPMDWin2 := nil;



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

    DLLInfop.txt QƂĂB
    iꕔÖقȂ̂܂j
    ߂lׂ͂ DLL API ƓłB



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

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



                                                                bUO
