2009. 2. 14. 22:37
와 장장 이틀동안 검색과 삽질의 결과물 입니다 ㅠㅠ..
누가보면 미련하기 짝이 없겠죠?
이렇게 얻은 수확물은 평생 머리속에서 빠져 나가지 않을 것입니다.
아래 구문을 잘 봐야 합니다.
SDK 에서 설명하기로는 m_Player 의 .GetCurrentMedia() 로 연결하라고 되어 있습니다.
이렇게하면 GetDuration() 에 불량한 값이 나옵니다.
double nDur = m_Player.GetControls().GetCurrentItem().GetDuration();
이렇게 시도하니 잘 됩니다.
하지만 프로그램 종료시 디버그 창을 속출합니다.
BOOL CWMP11SampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
누가보면 미련하기 짝이 없겠죠?
이렇게 얻은 수확물은 평생 머리속에서 빠져 나가지 않을 것입니다.
아래 구문을 잘 봐야 합니다.
SDK 에서 설명하기로는 m_Player 의 .GetCurrentMedia() 로 연결하라고 되어 있습니다.
이렇게하면 GetDuration() 에 불량한 값이 나옵니다.
double nDur = m_Player.GetControls().GetCurrentItem().GetDuration();
이렇게 시도하니 잘 됩니다.
하지만 프로그램 종료시 디버그 창을 속출합니다.
BOOL CWMP11SampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
m_clsWMPSettings = m_ctrWMP.GetSettings();
m_clsWMPSettings = m_ctrWMP.GetSettings();
m_clsWMPControl = m_ctrWMP.GetControls();
m_clsWMPMedia = m_ctrWMP.GetCurrentMedia(); // 이렇게 하시면 낭패 입니다.
m_clsWMPMedia = m_ctrWMPControl.GetCurrentItem(); // 이렇게 하셔도 낭패 입니다.
...
SetTimer(1, 1000, NULL);
}
void CWMP11SampleDlg::OpenStateChangeOcxWmp(long NewState)
{
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
switch(NewState)
{
case 13: // MediaOpen
m_clsWMPMedia = m_clsWMPControl.GetCurrentItem(); // 이쯤에서 받아 들이십시오. -_- 휴~
m_ctlTime.SetRange(0, (int)m_clsWMPMedia.GetDuration(), TRUE);
m_ctlTime.SetPos(0);
break;
}
m_clsWMPMedia = m_ctrWMP.GetCurrentMedia(); // 이렇게 하시면 낭패 입니다.
m_clsWMPMedia = m_ctrWMPControl.GetCurrentItem(); // 이렇게 하셔도 낭패 입니다.
...
SetTimer(1, 1000, NULL);
}
void CWMP11SampleDlg::OpenStateChangeOcxWmp(long NewState)
{
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
switch(NewState)
{
case 13: // MediaOpen
m_clsWMPMedia = m_clsWMPControl.GetCurrentItem(); // 이쯤에서 받아 들이십시오. -_- 휴~
m_ctlTime.SetRange(0, (int)m_clsWMPMedia.GetDuration(), TRUE);
m_ctlTime.SetPos(0);
break;
}
pEdit->SetWindowTextA(strTemp);
}
void CWMP11SampleDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
switch(nIDEvent)
{
case 1:
m_ctlTime.SetPos((int)m_clsWMPControl.GetCurrentPosition());
}
}
void CWMP11SampleDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
switch(nIDEvent)
{
case 1:
m_ctlTime.SetPos((int)m_clsWMPControl.GetCurrentPosition());
}
CDialog::OnTimer(nIDEvent);
}
}