모두들 안녕하세요...안녕하십니까?.... 꾸벅.....
갑자기 WindowsMediaPlayer OCX를 사용하지 않을 수 없었다... 회장님의 방침으로..
TV, RADIO... 나오게 하라고 하신다.... 그런데... Delphi는 uiMode 같은 속성창에
있다. 참 편하다... 그런데 나는 C++Builder로 해야한다. 약간 하다가 잘 못찾아..
소스도 몇줄 안되는데... 델파이로 할까라는?
유혹이 ㅋㅋㅋㅋ... 그래도 오늘도 디자인을 안넘겨 주길래 재미삼아 찾아 보았다.
그런데 놀랍게도... 이런 자료가 잘 없다. 구글군도 얼굴을 밝히더군....
그래서 열심히 찾아 꼬투리 물고 늘어졌다... 1개 하니... 답이 다 보이네...
ㅋㅋㅋ.. 저는 COM을 잘 몰라... 베끼고... 그렇게 사용한다.
혹 이것 때문에 고민하시는 분 있으면 도움이 되기를 바랍니다....
아래는 혹 검색하시는 분이 있을까 싶어 키워드용으로 소스의 거의 전부를
아래에 붙혀 넣어 두었습니다.
혹 이상하게 저 처럼 잘 안되는 분들은 아래의 파일이 있는가를 확인하세요...
저는 WMPLib_TLB.cpp, WMPLib_TLB.h, WMPLib_TLB.obj 이게 없더군요... 어떻게 언제 날려버렸는지,...
여하튼 다른 PC에 WMPLib_TLB.cpp, WMPLib_TLB.h 이 있길래 복사해 두고...
WMPLib_TLB.cpp 이것을 project에 추가해서 컴파일... WMPLib_TLB.obj 생성..
이제 #pragma link "WMPLib_TLB" 요것이 먹히더군요...
---------------------------------------------------------------------
C:\Program Files\Borland\CBuilder6\Imports
WMPLib_OCX.cpp
WMPLib_OCX.dcr
WMPLib_OCX.h
WMPLib_TLB.cpp
WMPLib_TLB.h
WMPLib_TLB.obj
----------------------------------------------------------------------
void __fastcall TForm1::btnPlayClick(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPCore3* core3 = NULL;
intf->QueryInterface( IID_IWMPCore3, (void**)&core3 );
core3->get_controls()->play();
if(core3 != NULL) core3->Release();
}
void __fastcall TForm1::btnStopClick(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPCore3* core3 = NULL;
intf->QueryInterface(IID_IWMPCore3, (void**) &core3);
core3->get_controls()->stop();
if(core3 != NULL) core3->Release();
}
//볼륨도 IWMPSettings 이 영역에 있으니 찾아서 해 보세요...
void __fastcall TForm1::btnMuteClick(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPSettings* core3 = NULL;
intf->QueryInterface(IID_IWMPSettings, (void**) &core3);
long l = core3->get_mute(); //get_mute();
if( l==0 ) l = core3->set_mute( -1 ); //get_mute(); // mute = false; //get_mute(); // set_mute( 0 ); // mute = 0;// get_settings()-> get_controls()->stop();
else l = core3->set_mute( 0 );
if(core3 != NULL) core3->Release();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnUIModeClick(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPPlayer4* player4 = NULL;
intf->QueryInterface(IID_IWMPPlayer4, (void**) &player4);
BSTR bstr;
bstr = player4->get_uiMode();
char str[100];
USES_CONVERSION; //<--- ATL 함수를 사용하려면 앞에 이렇게 해주면 된다고 하나,,,
// 물론 Head File도 추가하시고....
strcpy( str, OLE2A(bstr) );
if( strcmp( str, "full" )==0 ) player4->set_uiMode( L"none" );
else player4->set_uiMode( L"full" );
if(player4 != NULL) player4->Release();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
IUnknown* intf = WindowsMediaPlayer1->DefaultDispatch;
IWMPNetwork* core3 = NULL;
intf->QueryInterface( IID_IWMPCore, (void**)&core3 );
long d = 0;
//d = core3->get_bufferingProgress(); 이 값은 좀 모호함... 해보실분은 값을 보시고..
if(core3 != NULL) core3->Release();
//Edit2->Text = FloatToStr( d );
edBuffering->Text = WindowsMediaPlayer1->status;
}
부산에서 박영목 올렸습니다...
부산에 VC 2년 차정도 뽑았는데... 마음에 드는 분이 없어... C++Builder 2년차 뽑아 보려고 합니다...
나이는 32세 이하면 좋겠습니다. 아니어도 되지만 사장님이 33이라...
학력, 나이 제한 없음... 성품이 좋아야 합니다. 화합되지 못하는 성격은... 아무리 실력 좋아도 안됩니다.
이것은 회장님의 방침이라.... 혹 관심 있으신 분 연락바랍니다...
gsbsoft@naver.com, 011-9781-6751
|
^^