C++Builder에서 WindowsMediaPlayer2 갖고 놀기
===========================================
오늘도 디자인 수정... 울 회사는 디자인 죽어난다 --- "저 산이다! 아닌가배... ㅋㅋㅋ"
그런데... 나대로 Test하고 있는 윈도우 사이즈 변경시 WMP 화면 사이즈도 바꿀려고 하는 영 안되더라.
아-- 이것 때문에 3시간 보낸 것 같다. 찾아도 찾기지 않고....
누가 플레쉬를 사이징 하는 것을 올려 놓은 것을 보니 느낌이 왔다(역쉬 구글)... 어응... 저렇게 하는
것이구나.... 그래서 비슷하게 저도 뚝딱했지여.... 그랬더니 뚝딱 되었버렸네(이 내용은 탁자를 탁치니 억하고
죽었더라. 비슷하네... 늦게나마 고인의 명복을 빕니다).... 숙연...
델파이 것도 올려 두었어요.....
C++Builder
==========
//#pragma link "WMPLib_TLB" <--- Insert
//#include "WMPLib_OCX.h" <--- Include to Head File
//#include "WMPLib_TLB.h"
void __fastcall TForm1::uiModeStretchToFit()
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPPlayer2* player = NULL; //IWMPPlayer2 IWMPPlayer3 IWMPPlayer4
intf->QueryInterface(IID_IWMPPlayer2, (void**) &player);
player->set_uiMode( L"none" ); //Change Interface
player->set_stretchToFit( VARIANT_TRUE ); //StretchToFit
if(player != NULL) player->Release();
}
//Resize with WindowsMediaPlayer
//#include <oleidl.h> <--- Insert to Top
void __fastcall TForm1::Panel12Resize(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IOleInPlaceObject *LObj = NULL;
TRect LRc;
intf->QueryInterface(IID_IOleInPlaceObject, (void**) &LObj);
SetRect( &LRc, 0, 0, Panel12->Width, Panel12->Height );
LObj->SetObjectRects( &LRc, &LRc );
if(LObj != NULL) LObj->Release();
}
===========================================================================================
uses <-- 참고
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, WMPLib_TLB, ExtCtrls, StdCtrls, ActiveX;
Delphi
======
procedure TForm1.Panel1Resize(Sender: TObject);
const
IID_IOleInPlaceObject: TGUID = '{00000113-0000-0000-C000-000000000046}';
var
Res: HResult;
LObj: IOleInPlaceObject;
LRc: TRect;
begin
IDispatch(WindowsMediaPlayer1.OleObject).QueryInterface(IID_IOleInPlaceObject, LObj);
SetRect(LRc, 0, 0, Panel1.Width, Panel1.Height);
LObj.SetObjectRects(LRc, LRc);
end;
|
예전에 이걸 못해서 애 먹었다는... ㅜ,.ㅜ;