y‰SŽÒнŒ}zC/C++Ž ..
[2ch|¥Menu]
532:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/01/28 01:31:57
>>530
—v‚ÍA–{—ˆB‚ŃI[ƒo[ƒ‰ƒCƒh‚·‚é•K—v‚̂Ȃ¢ŠÖ”‚àAB“à‚©‚çŽè“®‚ÅA‚ÌŽÀ‘•‚ðŒÄ‚Ԃ悤‚É‚·‚ê‚΂¢‚¢B
ƒCƒ“ƒ^ƒtƒF[ƒX‚̓ƒ“ƒo•Ï”‚È‚¢‚©‚çAƒLƒƒƒXƒgŠÖŒW‚­‚ç‚¢‚µ‚©‰¼‘zŒp³‚Ì—L–³‚̈Ⴂ‚͂Ȃ¢‚Æ‚¢‚Á‚Ä‚à‰ßŒ¾‚ł͂Ȃ¢B
struct IA : IUnknown {virtual HRESULT STDMETHODCALLTYPE FnA() = 0;};
struct A : IA {
@ @ virtual HRESULT STDMETHODCALLTYPE QueryInterface(IID&, void**) {/*ŽÀ‘•*/}
@ @ virtual ULONG STDMETHODCALLTYPE AddRef() {/*ŽÀ‘•*/}
@ @ virtual ULONG STDMETHODCALLTYPE Release() {/*ŽÀ‘•*/}
@ @ virtual HRESULT STDMETHODCALLTYPE FnA() {/*ŽÀ‘•*/}
};
struct IB : IA {virtual HRESULT STDMETHODCALLTYPE FnB() = 0;};
struct B : A, IB {
@ @ virtual HRESULT STDMETHODCALLTYPE QueryInterface(IID&, void**);
@ @ virtual ULONG STDMETHODCALLTYPE AddRef() {return A::AddRef();}
@ @ virtual ULONG STDMETHODCALLTYPE Release() {return A::Release();}
@ @ virtual HRESULT STDMETHODCALLTYPE FnA() {return A::FnA();} //ƒI[ƒo[ƒ‰ƒCƒh‚µ‚È‚¢‹C‚È‚ç
@ @ virtual HRESULT STDMETHODCALLTYPE FnB() {/*ŽÀ‘•*/}
};
HRESULT STDMETHODCALLTYPE B::QueryInterface(IID& riid, void** ppv) {
@ @ if (ppv == 0) {
@ @ @ @ return E_POINTER;
@ @ } else if (riid == IID_B) @ @ {
@ @ @ @ *ppv = static_cast<IB*>(this);
@ @ @ @ AddRef(); //’¼ÚA::AddRef()‚Å‚à‰Â
@ @ @ @ return S_OK;
@ @ } else {
@ @ @ @ return A::QueryInterface(riid, ppv);
@ @ }
}
Java‚̃Cƒ“ƒ^ƒtƒF[ƒX‚ÌŽd—l‚¾‚ÆB‚Å‚ÌAddRefˆÈ‰º‚̂悤‚È‚±‚Ƃ𑂭•K—v‚ª‚È‚©‚Á‚½‹C‚ª‚·‚éA‚¿‚å‚Á‚Æ‚¤‚ç‚â‚Ü‚µ‚¢B



ŽŸƒy[ƒW
ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

4996“ú‘O‚ÉXV/252 KB
’S“–:undef