마님을 위해 오늘은 초밥을 만들어 볼까 합니다~
준비 재료 : 날치알, 오이, 밥    이구요. 맛살은 혹시나해서 구입했습니다.
날치알은 냉동실에서 보관하시면 오랜시간 보관이 가능할 것 같습니다. ( 비싸효~ )


먼저 오이를 감자칼로 쭉쭉 당겨주시면 넓이가 적당하게 나오는데요.
오이의 1/2 지점은 가운데 씨가 흐물흐물해서 옆구리가 터지구요.
1/3 지점이 제일 적당합니다.  1/5 이상의 지점은 폭이 좁아요 ㅎ..
연와사비를 살짝 넣어줍니다.
참고로 중국산은 1천원대..   일본산은 3천원대 -_-..

눈 요기 좀 하고~
입으로 슝슝==3

아~  맛난다 라는 말과 동시에.. 코안이 핑~  눈물이 핑~
연와사비를 너무 많이 넣은거에요 ㅠㅠ..  제가 찍은 와사비의 1/3 수준만 넣으세요. 흙흙~


남은건 비벼 비벼~  먹어 먹어~
Posted by +깡통+

하앜 일요일 서연이 보느라 정신없이 보냈습니다.
낮잠도 쿨쿨 자고.. Zzz

그러던중 황금휴일을 이렇게 보낼수 없다고 생각이 들어...
2000원 밥상차리기 요리책을 들고 메뉴를 탐색~
궁중떡볶이에 도전하기로 맘을 굳혔지요~
사진에는 어묵이 포함되어 있지만..
넣지는 않았어요.  몰랐는데 -_- 궁중떡볶이를 먹던 시절에는 어묵이란게 없었다는거~  -0-;;

재료 준비 끝~~  당근, 피망, 표고버섯, 양파, 대파, 떡볶이, 소스~

요리하실때에는..  대파 -> 양파 -> 당근 -> 버섯 -> 피망 순으로 넣으셔야 됩니다. ( 간격당 약 30초씩!? ) 마지막으로 떡 넣고 마무리.


짜쟌~~  완성된 궁중떡볶이! ㅎㅎㅎ
Posted by +깡통+
출처 : http://ultrasoo.linuxtop.co.kr/bbs/view.php?id=mfc&no=7
 
MFC 소켓 프로그래밍을 하기 위해서는 처음에 프로젝트를 생성할 때 MFC 응용 프로그램
마법사(MFC application wizard)에서 “Windows 소켓” 옵션을 선택해야 한다고 했다. 그런데
만약 이 옵션을 선택하지 않고 프로젝트를 생성했는데, 나중에 네트워크 프로그램을 추가해야 할
경우엔 어떻게 해야 할까?
처음에 “Windows 소켓”을 선택하지 않았다고 해서 프로젝트를 새로 만들고 코드를 복사해 넣는
수고를 할 필요는 없다. 사실 MFC 애플리케이션 위저드에서 “Windows 소켓” 옵션을 체크했을
때 추가되는 코드는 매우 간단한 것이다. 단지 하나의 함수를 호출해주는 코드를 삽입해 줄 뿐이다.
MFC 소켓을 사용하기 위해서는 AfxSocketInit이라는 함수를 먼저 호출해 주어야 한다. MFC
애플리케이션 위저드에서 “Windows 소켓” 옵션을 체크했을 때 추가되는 코드는
AfxSocketInit 함수를 호출해주는 코드를 삽입하는 것 뿐이다.
일반적으로 그 코드가 삽입되기에 가장 적절한 곳은 CWinApp 클래스를 상속받은 여러분의
클래스 파일의 InitInstance 함수 내에서이다. 만약 여러분이 생성한 프로젝트의 이름이
Test라면 CTestApp라는 클래스가 구현되어 있을 것이며, 그 클래스의 구현 파일(.cpp)에는
InitInstance 멤버 함수가 정의되어 있을 것이다. 이 함수 내에서 AfxSocketInit 함수를
호출하도록 코드를 넣어주면 된다.
아마 MFC 애플리케이션 위저드는 다음과 같은 코드를 자동으로 넣어줄 것이다.
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
IDP_SOCKETS_INIT_FAILED라는 상수는 string table에 있는 문자열인데, “Windows 소켓
을 초기화하지 못했습니다.”라는 문자열을 가리킨다. 따라서 여러분이 MFC 애플리케이션 위저드
에서 “Windows 소켓”을 선택하지 않고 직접 AfxSocketInit 함수를 호출해주려면
IDP_SOCKETS_INIT_FAILED 대신 “AfxSocketInit 호출에 실패했습니다.”와 같이 적절한
문자열을 직접 넣어주면 될 것이다.

참고로..
stdafx.h 파일에

#include <afxsock.h>  // MFC 소켓 확장

라인을 삽입해야한다~
Posted by +깡통+
2009. 3. 31. 12:15



후후훗! 말이 필요없음!
눈에 넣어도 안아프다라는 말이 딱입니다.

잘 키우겠습니다~!
Posted by +깡통+
봄 맞이 산책을 떠난 우리 부부...

이 꽃이 산수유?  뭔지 모르겠습니다.
포커스가 잘못 맞춰 졌네요 -_-;  의도는 이게 아닌데 ㅋ



상근이랑 닮은 녀석을 찍고 났더니..
그 옆에 있던 개 주인이...
울 애기도 찍어 주세요!  합니다.


인상 한번 끝내주세요!

따사로운 일요일 오후 였습니다.

Posted by +깡통+
준비물 : 계란3개, 당근, 파, 소금


거의 다 익혀줘야 합니다.
도마로 옮겨서 바로 칼질하다보면 -_- 100% 앗 뜨거! 입니다.



훗.. 시식은 마눌님께~
ask.. 앞으로 자주 해죠!
Posted by +깡통+
델인터내셔널

델컴퓨터의 창업자인 마이클 델은 재산이 무려 173억 달러로 2008년 포브스지가 선정한 미국의 부자순위중 11위에 기록된 세계 IT 업계의 대표적인 갑부다. 그가 이렇게 성공을 할 수 있었던 이유는 실수를 반복하지 않았기 때문이다.

그는 심지어 실수를 축복으로까지 여기고 실수와 관련된 많은 농담을 하기도 한다.

마이클 델이 아이들에게 처음 요리를 해줄 때는 너무 맛이 없었으나 두번째부터는 잘 할 수 있었다고 한다. 그러면서 그는 농담처럼 그것이 바로 델의 방식이라고 강조했다. 델은 이렇듯 실수가 있다면 그것을 통해서 배우고 새롭게 거듭난다. 만약 기뻐할 일이 생기거든 5초만 좋아하고 5시간은 반성하라는 슬로건을 가진 마이클 델 답게 끊임없이 자신의 행동을 뒤돌아보고 고쳐야 할 점을 생각해본다. 

그가 시대를 대표하는 심사숙고형의 경영자로 뽑힐 수 있었던 것은 역시 실수에서 자신의 행동을 뒤돌아보기 때문이다. 그에게 가장 충격적인 실수는 메모리 재고 사건이었다. 1989년 마이클 델의 회사는 당시 매년 100%정도씩의 폭발적인 성장을 거듭했다. 마침 그때가 컴퓨터 업계 전체 시장으로 봐도 계속해서 성장세였다.

그래서 마이클 델은 불어나는 수요를 감당하기 위해서 가능한 많은 재고를 미리 미리 확보하려 했다. 그래야만이 물량이 부족해서 제품을 만들지 못하는 사태를 막을 수 있다고 생각했다. 특히 그는 256KB 메모리를 대량으로 구매하고 있었다. 그런데 어느 날 최초로 1MB 메모리가 개발됐다는 소식이 전세계에 타전됐다. 그러더니 1MB 메모리가 시장에 무더기로 쏟아져 나왔다. 그러자 기존의 256KB 메모리는 순간적으로 폭락하였다. 15센트의 가치가 있었던 메모리가 1센트로 속락했고 델컴퓨터는 큰 손해를 봤다.

이로 인해 회사의 재정이 어려워졌다. 결국 컴퓨터 가격을 조금 높여 받아서 손해를 메꾸려고 했는데 가격경쟁력이 최대 무기인 델컴퓨터가 가격을 올리자 판매도 부진해지는 악순환에 빠지고 말았다. 이 사건을 겪은 후 마이클 델은 재고관리에 각별히 신경을 쓰기 시작했다. 재고는 야채와 같아서 하루가 지날 때마다 그 가치가 떨어진다는 것을 뼈저리게 깨달게 았다.

컴퓨터 부품은 유통기한이 짧기 때문에 야채처럼 재고를 최소화하기 위해서 고심했고 그 결과로 델컴퓨터는 재고 관리에 있어서는 최고의 회사로 거듭났다. 90년대 중반 다른 회사의 재고량이 90일이었다면 델컴퓨터는 일주일치에 불과할 정도였다. 재고가 부족하지도 않고 그렇다고 많지도 않는 완벽한 균형을 이뤄냈다.

현재는 재고가 단 하루이고 부품이 텍사스의 본사 창고로 들어오면 평균적으로 6시간 이내에 컴퓨터로 조립되어서 판매가 된다. 또한 컴퓨터 회사의 경우 막상 부품을 구입했지만 제품으로 사용하지 못하고 영원히 재고로 남기는 경우가 2~3%에 이르는데 델은 이를 0.5%이내로 관리함으로써 역시 최고의 재고 관리 능력을 보여줬다.

두 번째 사건은 올림픽 프로젝트였다. 델은 86년 컴덱스에서 가장 빠른 286 PC를 공개하자 많은 언론을 통해 화제거리에 올랐다. 이 덕분에 회사의 인지도가 상승했고 매출과 수익에서도 큰 효과를 봤다. 그래서 마이클 델은 회사의 기술력으로 세상을 다시 한 번 깜짝 놀래키고 싶었다.

이번에는 단순히 개인용 컴퓨터가 아니라 전체 컴퓨터 시장에서 최고 좋은 제품을 공개하고 싶었다. 86년때의 영광을 다시 한번 재현하려는 생각으로 89년 컴덱스에 마이클 델은 올림픽이라는 컴퓨터를 들고 나타났다. 언론의 관계자들로부터 데스크탑 컴퓨터와 워크스테이션 그리고 서버가 결합된 최고의 컴퓨터라는 극찬을 들었고 실제로 뿌듯한 감정을 느꼈지만 그것도 잠시였다. 정작 올림픽을 사는 사람이 없었기 때문이다.

아무리 최고의 성능을 자랑하는 컴퓨터 일지라도 팔리지가 않으면 소용이 없다. 사람들은 올림픽에 호기심을 느끼긴 했지만 실제로 업무에서 활용할 수 있는 부분이 없다고 말했다. 올림픽 프로젝트는 고객이 자신들이 만든 컴퓨터를 가지고 무엇을 할 수 있는지에 대해서 고민하기 보다는 어떻게 하면 자신들의 기술을 뽐내고 자랑할 수 있을까만 생각한 것이었다. 결국 올림픽 컴퓨터는 기술을 위한 기술이 되어버렸고 소비자들의 외면을 받아야 했다. 마이클 델은 올림픽 프로젝트를 통해서 고객의 목소리에 귀를 기울이지 않은 자신을 질타했다. 그리고 회사와 기술은 결국 사람을 향해야한다는 점을 확실하게 깨달았다.

실수가 그냥 실수로 끝나면 아무 소용이 없다. 실수를 통해서 그 뒤에 감쳐진 기회를 잡을 수 있어야 성공할 수 있는 법이다. 마이클 델은 실수를 겪으면 단지 좌절하기 보다는 그 실수를 하나의 선물처럼 생각했고 더 효율적으로 실수를 만회하는 방식을 찾아냄으로써 위기를 헤쳐 나가고 더 강해졌다


Posted by +깡통+

+ _ +  ㄱ ㄱ ㅑ~  또먹고 싶어요.
Posted by +깡통+


난 이 떡볶이를 찍으면서 알아버렸다..
좋은 디카와 렌즈가 필요하다는 사실을 ㅠㅠ..

나의 로망 450D 와 삼식이 ..  지름신아 이 떡볶이 잡수시고 할인좀 안되겠니?
ㅋㅋ
Posted by +깡통+

클래스는 컬렉션 클래스로 링크드 리스트를 구현한 클래스이다.
따라서 CObject로부터 계승된 모든 클래스는 이 컬렉션 클래스의 적용
대상이 된다.

주요 멤버 함수로는 아래와 같다.

class CObList : public CObject


▷ CObList::AddHead - 헤드로 요소를 더함.
▷ CObList::CObList - 비어 있는 리스트를 구성.
▷ CObList::GetAt - 주어진 위치에서 요소를 얻음.
▷ CObList::GetHead - 헤드 요소를 반환.
▷ CObList::GetNext - 반복을 위한 요소를 얻음.
▷ CObList::GetPrev - 이전의 요소를 얻음.
▷ CObList::IsEmpty - 빈 리스트 상태를 테스트함.
▷ CObList::RemoveAll - 모든 요소를 제거.
▷ CObList::RemoveAt - 한 요소를 제거.


위 자료의 출처 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10104&eid=IuVUJA9nZFYbYJerQH6ohtb9Ayp6MB7t&qb=Q09iTGlzdA==&enc=utf8&pid=fjXdldoi5U4ssZ/bdQZsss--134044&sid=SauQgTKLq0kAABxuE@8
 

Posted by +깡통+
솔직히 말씀드리자면...
조립 PC를 만들어주는 일과 견적을 내주는 일은 여간 귀찮은 일이 아닐 수 없습니다.

하지만!
좋은 물건 좋은 궁합으로..
3년 쓸 컴퓨터 5년 쓰게하자!

뭐 이런.. 생각으로 게시판을 만들어봅니다.

견적요청시
주 용도.. ( 게임용, 공부용, 영화감상용, 뽀샵용... )
동원 가능한 총알(현금)..  // 카드는 더 비쌉니다.

두가지를 알려주시면 최적으로 뽑아드립니다.
Posted by +깡통+


훗..  동전 줍는 모습에서 나타나는 그림자를 보십시오.
동전 던져놓고 -_- 구경하는 DGV(대구베르나클럽) 회원님들 입니다.

마지막은 신혼여행 떠나기 직전의 모습입니다 ^^..
Posted by +깡통+
2009. 2. 16. 13:14

We were unable to locate this content in ko-kr.

Here is the same content in en-us.

SetWindowPos Function

Changes the size, position, and Z order of a child, pop-up, or top-level window. These windows are ordered according to their appearance on the screen. The topmost window receives the highest rank and is the first window in the Z order.

Syntax

BOOL SetWindowPos(      
    HWND hWnd,     HWND hWndInsertAfter,     int X,     int Y,     int cx,     int cy,     UINT uFlags );

Parameters

hWnd
[in] A handle to the window.
hWndInsertAfter
[in] A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values.
HWND_BOTTOM
Places the window at the bottom of the Z order. If the hWnd parameter identifies a topmost window, the window loses its topmost status and is placed at the bottom of all other windows.
HWND_NOTOPMOST
Places the window above all non-topmost windows (that is, behind all topmost windows). This flag has no effect if the window is already a non-topmost window.
HWND_TOP
Places the window at the top of the Z order.
HWND_TOPMOST
Places the window above all non-topmost windows. The window maintains its topmost position even when it is deactivated.
For more information about how this parameter is used, see the following Remarks section.
X
[in] Specifies the new position of the left side of the window, in client coordinates.
Y
[in] Specifies the new position of the top of the window, in client coordinates.
cx
[in] Specifies the new width of the window, in pixels.
cy
[in] Specifies the new height of the window, in pixels.
uFlags
[in] Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
SWP_ASYNCWINDOWPOS
If the calling thread and the thread that owns the window are attached to different input queues, the system posts the request to the thread that owns the window. This prevents the calling thread from blocking its execution while other threads process the request.
SWP_DEFERERASE
Prevents generation of the WM_SYNCPAINT message.
SWP_DRAWFRAME
Draws a frame (defined in the window's class description) around the window.
SWP_FRAMECHANGED
Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.
SWP_HIDEWINDOW
Hides the window.
SWP_NOACTIVATE
Does not activate the window. If this flag is not set, the window is activated and moved to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter).
SWP_NOCOPYBITS
Discards the entire contents of the client area. If this flag is not specified, the valid contents of the client area are saved and copied back into the client area after the window is sized or repositioned.
SWP_NOMOVE
Retains the current position (ignores X and Y parameters).
SWP_NOOWNERZORDER
Does not change the owner window's position in the Z order.
SWP_NOREDRAW
Does not redraw changes. If this flag is set, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of the window being moved. When this flag is set, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing.
SWP_NOREPOSITION
Same as the SWP_NOOWNERZORDER flag.
SWP_NOSENDCHANGING
Prevents the window from receiving the WM_WINDOWPOSCHANGING message.
SWP_NOSIZE
Retains the current size (ignores the cx and cy parameters).
SWP_NOZORDER
Retains the current Z order (ignores the hWndInsertAfter parameter).
SWP_SHOWWINDOW
Displays the window.

Return Value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

As part of the Vista re-architecture, all services were moved off the interactive desktop into Session 0. hwnd and window manager operations are only effective inside a session and cross-session attempts to manipulate the hwnd will fail. For more information, see Session 0 Isolation.

If the SWP_SHOWWINDOW or SWP_HIDEWINDOW flag is set, the window cannot be moved or sized.

If you have changed certain window data using SetWindowLong, you must call SetWindowPos for the changes to take effect. Use the following combination for uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.

A window can be made a topmost window either by setting the hWndInsertAfter parameter to HWND_TOPMOST and ensuring that the SWP_NOZORDER flag is not set, or by setting a window's position in the Z order so that it is above any existing topmost windows. When a non-topmost window is made topmost, its owned windows are also made topmost. Its owners, however, are not changed.

If neither the SWP_NOACTIVATE nor SWP_NOZORDER flag is specified (that is, when the application requests that a window be simultaneously activated and its position in the Z order changed), the value specified in hWndInsertAfter is used only in the following circumstances.

  • Neither the HWND_TOPMOST nor HWND_NOTOPMOST flag is specified in hWndInsertAfter.
  • The window identified by hWnd is not the active window.

An application cannot activate an inactive window without also bringing it to the top of the Z order. Applications can change an activated window's position in the Z order without restrictions, or it can activate a window and then move it to the top of the topmost or non-topmost windows.

If a topmost window is repositioned to the bottom (HWND_BOTTOM) of the Z order or after any non-topmost window, it is no longer topmost. When a topmost window is made non-topmost, its owners and its owned windows are also made non-topmost windows.

A non-topmost window can own a topmost window, but the reverse cannot occur. Any window (for example, a dialog box) owned by a topmost window is itself made a topmost window, to ensure that all owned windows stay above their owner.

If an application is not in the foreground, and should be in the foreground, it must call the SetForegroundWindow function.

To use SetWindowPos to bring a window to the top, the process that owns the window must have SetForegroundWindow permission.

Example

For an example, see Initializing a Dialog Box.

Function Information

Minimum DLL Version user32.dll
Header Declared in Winuser.h, include Windows.h
Import library User32.lib
Minimum operating systems Windows 95, Windows NT 3.1
Unicode Implemented as Unicode version.

See Also


Posted by +깡통+
흐미~
원놈의 경고가 이렇게 많이 뜨나 했다..
sprintf 가 아니가 sprintf_s 를 사용해야 된다.  쩝.
아래는 VS2005 에서 사용해야하는 함수 목록들..

http://msdn2.microsoft.com/en-us/library/ms235384(VS.80).aspx


Run-Time Library Reference 
Deprecated CRT Functions 

Deprecated CRT functions and their recommended replacements.

Deprecated POSIX functions

The following POSIX names for functions are deprecated. In most cases, prepending an underscore character gives the standard equivalent name. Note that some functions have more secure versions ("_s" suffix).

You can also eliminate POSIX deprecation warnings by defining _CRT_NONSTDC_NO_DEPRECATE.

Deprecated function Replacement function

access

_access, _access_s

cabs

_cabs

cgets

_cgets, _cgets_s

chdir

_chdir

chmod

_chmod

chsize

_chsize, _chsize_s

close

_close

cprintf

_cprintf, _cprintf_s

cputs

_cputs

creat

_creat

cscanf

_cscanf, _cscanf_s

cwait

_cwait

dup

_dup

dup2

_dup2

ecvt

_ecvt, _ecvt_s

eof

_eof

execl

_execl

execle

_execle

execlp

_execlp

execlpe

_execlpe

execv

_execv

execve

_execve

execvp

_execvp

execvpe

_execvpe

fcloseall

_fcloseall

fcvt

_fcvt, _fcvt_s

fdopen

_fdopen

fgetchar

_fgetchar

filelength

_filelength

fileno

_fileno

flushall

_flushall

fputchar

_fputchar, _fputwchar

gcvt

_gcvt, _gcvt_s

getch

_getch

getche

_getche

getcwd

_getcwd, _wgetcwd

getpid

_getpid

getw

_getw

hypot

_hypot

inp

_inp

inpw

_inpw

isascii

__isascii

isatty

_isatty

iscsym

__iscsym

iscsymf

__iscsymf

itoa

_itoa, _itoa_s

j0

_j0

j1

_j1

jn

_jn

kbhit

_kbhit

lfind

_lfind, _lfind_s

locking

_locking

lsearch

_lsearch, _lsearch_s

lseek

_lseek

ltoa

_ltoa, _ltoa_s

memccpy

_memccpy

memicmp

_memicmp

mkdir

_mkdir

mktemp

_mktemp, _mktemp_s

open

_open

outp

_outp

outpw

_outpw

putch

_putch

putenv

_putenv, _putenv_s

putw

_putw

read

_read

rmdir

_rmdir

rmtmp

_rmtmp

setmode

_setmode

sopen

_sopen, _sopen_s

spawnl

_spawnl

spawnle

_spawnle

spawnlp

_spawnlp

spawnlpe

_spawnlpe

spawnv

_spawnv

spawnve

_spawnve

spawnvp

_spawnvp

spawnvpe

_spawnvpe

strcmpi

_stricmp

strdup

_strdup

stricmp

_stricmp

strlwr

_strlwr, _strlwr_s

strnicmp

_strnicmp

strnset

_strnset, _strnset_s

strrev

_strrev

strset

_strset, _strset_s

strupr

_strupr, _strupr_s

swab

_swab

tell

_tell

tempnam

_tempnam

toascii

__toascii

tzset

_tzset

ultoa

_ultoa, _ultoa_s

umask

_umask, _umask_s

ungetch

_ungetch

unlink

_unlink

wcsdup

_wcsdup

wcsicmp

_wcsicmp

wcsicoll

_wcsicoll

wcslwr

_wcslwr, _wcslwr_s

wcsnicmp

_wcsnicmp

wcsnset

_wcsnset, _wcsnset_s

wcsrev

_wcsrev

wcsset

_wcsset, _wcsset_s

wcsupr

_wcsupr, _wcsupr_s

write

_write

y0

_y0

y1

_y1

yn

_yn

Security-enhanced functions

The following functions should be avoided because a more secure version of the function should be used instead. For more information, see Security Enhancements in the CRT.

Deprecated function Security-enhanced replacement

_alloca

_malloca

asctime

asctime_s

_cgets, _cgetws

_cgets_s, _cgetws_s

_chsize

_chsize_s

_controlfp

_controlfp_s

_creat

_sopen_s

_cscanf

_cscanf_s

_cscanf_l

_cscanf_s_l

ctime

ctime_s

_ctime32

_ctime32_s

_ctime64

_ctime64_s

_cwscanf

_cwscanf_s

_cwscanf_l

_cwscanf_s_l

_ecvt

_ecvt_s

_fcvt

_fcvt_s

fopen

fopen_s

freopen

freopen_s

fscanf

fscanf_s

_fscanf_l

_fscanf_s_l

fwscanf

fwscanf_s

_fwscanf_l

_fwscanf_s_l

_gcvt

_gcvt_s

getenv

getenv_s

gets, _getws

gets_s, _getws_s

gmtime

_gmtime_s

_gmtime32

_gmtime32_s

_gmtime64

_gmtime64_s

_i64toa

_i64toa_s

_i64tow

_i64tow_s

_itoa

_itoa_s

_itow

_itow_s

localtime

_localtime_s

_localtime32

_localtime32_s

_localtime64

_localtime64_s

_ltoa, _ltow

_ltoa_s, _ltow_s

_mbccpy

_mbccpy_s

_mbccpy_l

_mbccpy_s_l

_mbscat

_mbscat_s

_mbscpy

_mbscpy_s

_mbslwr, _mbslwr_l

_mbslwr_s, _mbslwr_s_l

_mbsnbcat, _mbsnbcat_l

_mbsnbcat_s, _mbsnbcat_s_l

_mbsnbcpy, _mbsnbcpy_l

_mbsnbcpy_s, _mbsnbcpy_s_l

_mbsnbset

_mbsnbset_s

_mbsnbset_l

_mbsnbset_s_l

_mbsncat

_mbsncat_s

_mbsncat_l

_mbsncat_s_l

_mbsncpy

_mbsncpy_s

_mbsncpy_l

_mbsncpy_s_l

_mbsnset

_mbsnset_s

_mbsnset_l

_mbsnset_s_l

mbsrtowcs

mbsrtowcs_s

_mbsset

_mbsset_s

_mbsset_l

_mbsset_s_l

_mbstok

_mbstok_s

_mbstok_l

_mbstok_s_l

mbstowcs, _mbstowcs_l

mbstowcs_s, _mbstowcs_s_l

_mbsupr, _mbsupr_l

_mbsupr_s, _mbsupr_s_l

memcpy

memcpy_s

memmove

memmove_s

_mktemp

_mktemp_s

_open

_sopen_s

scanf

scanf_s

_scanf_l

_scanf_s_l

_searchenv

_searchenv_s

setbuf

setvbuf

_snprintf

_snprintf_s

_snprintf_l

_snprintf_s_l

_snscanf

_snscanf_s

_snscanf_l

_snscanf_s_l

_snwprintf

_snwprintf_s

_snwprintf_l

_snwprintf_s_l

_snwscanf

_snwscanf_s

_snwscanf_l

_snwscanf_s_l

_sopen

_sopen_s

_splitpath

_splitpath_s

sprintf

sprintf_s

_sprintf_l

_sprintf_s_l

sscanf

sscanf_s

_sscanf_l

_sscanf_s_l

strcat

strcat_s

strcpy

strcpy_s

_strdate

_strdate_s

strerror, _strerror

strerror_s, _strerror_s

_strlwr, _strlwr_l

_strlwr_s, _strlwr_s_l

strncat, _strncat_l

strncat_s, _strncat_s_l

strncpy, _strncpy_l

strncpy_s, _strncpy_s_l

_strnset

_strnset_s

_strnset_l

_strnset_s_l

_strset

_strset_s

_strset_l

_strset_s_l

_strtime

_strtime_s

strtok

strtok_s

_strtok_l

_strtok_s_l

_strupr, _strupr_l

_strupr_s, _strupr_s_l

swprintf

swprintf_s

_swprintf_l

_swprintf_s_l

swscanf

swscanf_s

_swscanf_l

_swscanf_s_l

tmpfile

tmpfile_s

_ui64toa, _ui64tow

_ui64toa_s, _ui64tow_s

_ultoa, _ultow

_ultoa_s, _ultow_s

_umask

_umask_s

vsnprintf, _vsnprintf, _vsnprintf_l, _vsnwprintf, _vsnwprintf_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

vsprintf, _vsprintf_l, vswprintf, _vswprintf_l, __vswprintf_l

vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

_wasctime

_wasctime_s

_wcreat

_wsopen_s

wcrtomb

wcrtomb_s

wcscat

wcscat_s

wcscpy

wcscpy_s

_wcserror, __wcserror

_wcserror_s, __wcserror_s

_wcslwr, _wcslwr_l

_wcslwr_s, _wcslwr_s_l

wcsncat, wcsncat_l

wcsncat_s, _wcsncat_s_l

_wcsncpy, _wcsncpy_l

wcsncpy_s, _wcsncpy_s_l

_wcsnset, _wcsnset_l

_wcsnset_s, _wcsnset_s_l

wcsrtombs

wcsrtombs_s

_wcsset, _wcsset_l

_wcsset_s_wcsset_s_l

wcstok, _wcstok_l

wcstok_s, _wcstok_s_l

wcstombs, _wcstombs_l

wcstombs_s, _wcstombs_s_l

_wcsupr_l, _wcsupr

_wcsupr_s, _wcsupr_s_l

_wctime, _wctime32, _wctime64

_wctime_s, _wctime32_s, _wctime64_s

wctomb, _wctomb_l

wctomb_s, _wctomb_s_l

_wfopen

_wfopen_s

_wfreopen

_wfreopen_s

_wgetenv

_wgetenv_s

wmemcpy

wmemcpy_s

wmemmove

wmemmove_s

_wmktemp

_wmktemp_s

_wopen

_wsopen_s

_wscanf, _wscanf_l

_wscanf_s, _wscanf_s_l

_wsearchenv

_wsearchenv_s

_wsopen

_wsopen_s

_wsplitpath

_wsplitpath_s

_wstrdate

_wstrdate_s

_wstrtime

_wstrtime_s

Functions with Secure Template Overloads

Posted by +깡통+
와 장장 이틀동안 검색과 삽질의 결과물 입니다 ㅠㅠ..

누가보면 미련하기 짝이 없겠죠?

이렇게 얻은 수확물은 평생 머리속에서 빠져 나가지 않을 것입니다.

아래 구문을 잘 봐야 합니다.
SDK 에서 설명하기로는 m_Player 의 .GetCurrentMedia() 로 연결하라고 되어 있습니다.
이렇게하면 GetDuration() 에 불량한 값이 나옵니다.

double nDur = m_Player.GetControls().GetCurrentItem().GetDuration();

이렇게 시도하니 잘 됩니다.
하지만 프로그램 종료시 디버그 창을 속출합니다.


BOOL CWMP11SampleDlg::OnInitDialog()
{
 CDialog::OnInitDialog();
 ...
 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;
 }
 pEdit->SetWindowTextA(strTemp);
}


void CWMP11SampleDlg::OnTimer(UINT_PTR nIDEvent)
{
 // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
 switch(nIDEvent)
 {
 case 1:
  m_ctlTime.SetPos((int)m_clsWMPControl.GetCurrentPosition());
 }
 CDialog::OnTimer(nIDEvent);
}
Posted by +깡통+
 [답변]원하는 내용이 무엇인지 잘모르겠습니다면... 2002-07-10 오후 5:53:00
정용철 번호: 212603   / 평점:  (-)  
꼭 필요한 함수만 찍어드리겠습니다.
연습해보세요.

즐프~

√  double GetCurrentPosition();        //현재위치
√      void SetCurrentPosition(double newValue);    //현재위치 설정
√      double GetDuration();      // 전체길이
    long GetImageSourceWidth();
    long GetImageSourceHeight();
    long GetMarkerCount();
    BOOL GetCanScan();
    BOOL GetCanSeek();
    BOOL GetCanSeekToMarkers();
    long GetCurrentMarker();
    void SetCurrentMarker(long nNewValue);
    CString GetFileName();
√      void SetFileName(LPCTSTR lpszNewValue);    //재생할 파일이름
    CString GetSourceLink();
    DATE GetCreationDate();
    CString GetErrorCorrection();
    long GetBandwidth();
    long GetSourceProtocol();
    long GetReceivedPackets();
    long GetRecoveredPackets();
    long GetLostPackets();
    long GetReceptionQuality();
    long GetBufferingCount();
    BOOL GetIsBroadcast();
    long GetBufferingProgress();
    CString GetChannelName();
    CString GetChannelDescription();
    CString GetChannelURL();
    CString GetContactAddress();
    CString GetContactPhone();
    CString GetContactEmail();
    double GetBufferingTime();
    void SetBufferingTime(double newValue);
    BOOL GetAutoStart();
√      void SetAutoStart(BOOL bNewValue);     //자동시작
√      BOOL GetAutoRewind();                           //자동 되감기 얻기
√      void SetAutoRewind(BOOL bNewValue);      //자동되감기
√      double GetRate();                               //재생속도  0.0 < x <2.0
√      void SetRate(double newValue);         //재생속도 설정
    BOOL GetSendKeyboardEvents();
    void SetSendKeyboardEvents(BOOL bNewValue);
    BOOL GetSendMouseClickEvents();
    void SetSendMouseClickEvents(BOOL bNewValue);  
    BOOL GetSendMouseMoveEvents();
    void SetSendMouseMoveEvents(BOOL bNewValue);
    long GetPlayCount();
    void SetPlayCount(long nNewValue);
    BOOL GetClickToPlay();
√      void SetClickToPlay(BOOL bNewValue);
    BOOL GetAllowScan();
    void SetAllowScan(BOOL bNewValue);
    BOOL GetEnableContextMenu();
    void SetEnableContextMenu(BOOL bNewValue);
    long GetCursorType();
    void SetCursorType(long nNewValue);
    long GetCodecCount();
    BOOL GetAllowChangeDisplaySize();
    void SetAllowChangeDisplaySize(BOOL bNewValue);
    BOOL GetIsDurationValid();
    long GetOpenState();
    BOOL GetSendOpenStateChangeEvents();
    void SetSendOpenStateChangeEvents(BOOL bNewValue);
    BOOL GetSendWarningEvents();
    void SetSendWarningEvents(BOOL bNewValue);
    BOOL GetSendErrorEvents();
    void SetSendErrorEvents(BOOL bNewValue);
√      long GetPlayState();
    BOOL GetSendPlayStateChangeEvents();
    void SetSendPlayStateChangeEvents(BOOL bNewValue);
    long GetDisplaySize();
    void SetDisplaySize(long nNewValue);
    BOOL GetInvokeURLs();
    void SetInvokeURLs(BOOL bNewValue);
    CString GetBaseURL();
    void SetBaseURL(LPCTSTR lpszNewValue);
    CString GetDefaultFrame();
    void SetDefaultFrame(LPCTSTR lpszNewValue);
    BOOL GetHasError();
    CString GetErrorDescription();
    long GetErrorCode();
    BOOL GetAnimationAtStart();
    void SetAnimationAtStart(BOOL bNewValue);
    BOOL GetTransparentAtStart();
    void SetTransparentAtStart(BOOL bNewValue);
    long GetVolume();
    void SetVolume(long nNewValue);
    long GetBalance();
    void SetBalance(long nNewValue);
    long GetReadyState();
    double GetSelectionStart();
    void SetSelectionStart(double newValue);
    double GetSelectionEnd();
    void SetSelectionEnd(double newValue);
    BOOL GetShowDisplay();
    void SetShowDisplay(BOOL bNewValue);
    BOOL GetShowControls();
    void SetShowControls(BOOL bNewValue);
    BOOL GetShowPositionControls();
    void SetShowPositionControls(BOOL bNewValue);
    BOOL GetShowTracker();
    void SetShowTracker(BOOL bNewValue);
    BOOL GetEnablePositionControls();
    void SetEnablePositionControls(BOOL bNewValue);
    BOOL GetEnableTracker();
    void SetEnableTracker(BOOL bNewValue);
    BOOL GetEnabled();
    void SetEnabled(BOOL bNewValue);
    unsigned long GetDisplayForeColor();
    void SetDisplayForeColor(unsigned long newValue);
    unsigned long GetDisplayBackColor();
    void SetDisplayBackColor(unsigned long newValue);
    long GetDisplayMode();
    void SetDisplayMode(long nNewValue);
    BOOL GetVideoBorder3D();
    void SetVideoBorder3D(BOOL bNewValue);
    long GetVideoBorderWidth();
    void SetVideoBorderWidth(long nNewValue);
    unsigned long GetVideoBorderColor();
    void SetVideoBorderColor(unsigned long newValue);
    BOOL GetShowGotoBar();
    void SetShowGotoBar(BOOL bNewValue);
    BOOL GetShowStatusBar();
    void SetShowStatusBar(BOOL bNewValue);
    BOOL GetShowCaptioning();
    void SetShowCaptioning(BOOL bNewValue);
    BOOL GetShowAudioControls();
    void SetShowAudioControls(BOOL bNewValue);
    CString GetCaptioningID();
    void SetCaptioningID(LPCTSTR lpszNewValue);
    BOOL GetMute();
    void SetMute(BOOL bNewValue);
    BOOL GetCanPreview();
    BOOL GetPreviewMode();
    void SetPreviewMode(BOOL bNewValue);
    BOOL GetHasMultipleItems();
    long GetLanguage();
    void SetLanguage(long nNewValue);
    long GetAudioStream();
    void SetAudioStream(long nNewValue);
    CString GetSAMIStyle();
    void SetSAMIStyle(LPCTSTR lpszNewValue);
    CString GetSAMILang();
    void SetSAMILang(LPCTSTR lpszNewValue);
    CString GetSAMIFileName();
    void SetSAMIFileName(LPCTSTR lpszNewValue);
    long GetStreamCount();
    CString GetClientId();
    long GetConnectionSpeed();
    BOOL GetAutoSize();
    void SetAutoSize(BOOL bNewValue);
    BOOL GetEnableFullScreenControls();
    void SetEnableFullScreenControls(BOOL bNewValue);
    LPDISPATCH GetActiveMovie();
    LPDISPATCH GetNSPlay();
    BOOL GetWindowlessVideo();
    void SetWindowlessVideo(BOOL bNewValue);
√      void Play();
√      void Stop();
√      void Pause();
    double GetMarkerTime(long MarkerNum);
    CString GetMarkerName(long MarkerNum);
    void AboutBox();
    BOOL GetCodecInstalled(long CodecNum);
    CString GetCodecDescription(long CodecNum);
    CString GetCodecURL(long CodecNum);
    CString GetMoreInfoURL(long MoreInfoType);
    CString GetMediaInfoString(long MediaInfoType);
    void Cancel();
    void Open(LPCTSTR bstrFileName);
    BOOL IsSoundCardEnabled();
√      void Next();
√      void Previous();
    void StreamSelect(long StreamNum);
√      void FastForward();
√      void FastReverse();
    CString GetStreamName(long StreamNum);
    long GetStreamGroup(long StreamNum);
    BOOL GetStreamSelected(long StreamNum);
    CMediaPlayerDvd GetDvd();
    CString GetMediaParameter(long EntryNum, LPCTSTR bstrParameterName);
    CString GetMediaParameterName(long EntryNum, long Index);
    long GetEntryCount();
    long GetCurrentEntry();
    void SetCurrentEntry(long EntryNumber);
    void ShowDialog(long mpDialogIndex);

Posted by +깡통+
Windows Media Player SDK banner art
Previous Next

Player.playState

The playState property retrieves a value indicating the state of the Windows Media Player operation.

Syntax

player.playState

Possible Values

This property is a read-only Number (long). The C-style enumeration constant can be derived by prefixing the state value with "wmpps". For example, the constant for the Playing state is wmppsPlaying.

Value State Description
0 Undefined Windows Media Player is in an undefined state.
1 Stopped Playback of the current media item is stopped.
2 Paused Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location.
3 Playing The current media item is playing.
4 ScanForward The current media item is fast forwarding.
5 ScanReverse The current media item is fast rewinding.
6 Buffering The current media item is getting additional data from the server.
7 Waiting Connection is established, but the server is not sending data. Waiting for session to begin.
8 MediaEnded Media item has completed playback.
9 Transitioning Preparing new media item.
10 Ready Ready to begin playing.
11 Reconnecting Reconnecting to stream.

Remarks

Windows Media Player states are not guaranteed to occur in any particular order. Furthermore, not every state necessarily occurs during a sequence of events. You should not write code that relies upon state order.

Example Code

The following JScript code shows the use of the player.playState property. An HTML text element, named "myText", displays the current status. The Player object was created with ID = "Player".

// Test whether Windows Media Player is in the playing state.
if (3 == Player.playState)
    myText.value = "Windows Media Player is playing!";
else
    myText.value = "Windows Media Player is NOT playing!";

Requirements

Version: Windows Media Player version 7.0 or later.

Header: Defined in wmp.idl; include wmp.h.

Library: Use wmp.dll.

Posted by +깡통+
http://msdn.microsoft.com/ko-kr/windowsmedia/bb190309(en-us).aspx

Windows Media Downloads

Microsoft® Windows Media® consists of a number of software components that you can use to create complete streaming media solutions. Within each component is a suite of related programs, plug-ins, tools, and utilities. Together, these components provide an end-to-end solution for streaming multimedia, from content authoring to delivery and playback.

Latest Windows Media Downloads

Windows Media Rights Manager 10.1.1 SDK

Introduces new features to help you manage large numbers of licenses more easily, revoke specific licenses, and use new rights to support consumer scenarios like sharing music or burning playlists to CDs. Also use this SDK to work with portable devices that support Windows Media DRM 10 for Portable Devices. The Windows Media Rights Manager 10.1.1 SDK will be sent to you after Microsoft accepts a signed SDK license agreement from you. You will also need to obtain digital certificates to verify your identity.

Windows Media Format 11 SDK
Introduces a variety of new digital rights management features.
Windows SDK for Windows Vista
The latest versions for most Windows Media developer technologies are included in the Windows SDK for Windows Vista. Download and install the Windows SDK to get the Windows Meda Player 11 SDK, the Media Foundation SDK, Windows Portable Devices, the Core Audio APIs, and more.
Media Transfer Protocol Porting Kit
Introduces the new Media Transfer Protocol (MTP), which enables you to manage content on any portable device with storage. MTP was first shipped as part of the Windows Media Device Manager 10 SDK. This porting kit includes the complete MTP specification, design documentation, sample source code, software to implement a PC-based MTP simulator, and MTP test tools. The latest version of the MTP Porting Kit includes thoroughly updated ANSI C source code as well as a redistributable MTP driver for Windows 98 Second Edition, Windows Millennium Edition, and Windows 2000 operating systems. This driver is implemented as a Windows Media Device Manager Service Provider and supports device access through Windows Media Player 9 Series and other device applications that work on the Windows Media Format 9 Series Software Development Kit (SDK).
Windows Media Services 9 Series SDK
Part of the Microsoft Platform SDK for Windows Server 2003, the Windows Media Services 9 Series SDK enables you to programmatically control, configure, and monitor a server running Windows Media Services 9 Series.
Windows Media Device Manager 10 SDK
Introduces new features to help you work with devices that support the new Media Transfer Protocol (MTP), devices that support a modified Windows CE (Pocket PC) class driver, and mass storage devices exposed by the new Microsoft Cluster (MSC) class driver. The Windows Media Device Manager 10 SDK is included in the Windows Media Format 9.5 SDK. You will also need to obtain digital certificates to enable transfer of content protected by Windows Media digital rights management (DRM).

Older Windows Media Downloads

Windows Media Player 10 SDK
The Microsoft Windows Media Player 10 SDK provides information and tools to customize Windows Media Player and to use the Windows Media Player ActiveX® control. This documentation also provides information about using Windows Media metafiles.
Windows Media Format 9.5 SDK
This update to the Windows Meda Format 9 Seres SDK provdes several improvements including the Windows Media Video Advanced Profile codec and an improved Windows Media Video Image codec. Unlke the Windows Media Format 9 Seres SDK, this verson requires Windows XP or later.
Sample Code for Using the Windows Media Audio and Video Codec Interfaces
This package includes documentation and sample code that demonstrate how to use the Codec APIs in the Windows Media Format 9 Series SDK.
Windows Media Format 9 Series SDK
With support for the Windows Media Audio and Video codecs, the Windows Media Format SDK provides technology and documentation you can use to create and manipulate Windows Media files in your applications.
Windows Media Encoder 9 Series SDK
The Microsoft Windows Media Encoder 9 Series SDK is designed for anyone who wants to develop a Windows Media Encoder application by using a powerful automation-based application programming interface (API).
Windows Media Rights Manager 9 Series SDK
This SDK provides the tools to create an end-to-end digital rights management (DRM) system that offers content providers and retailers a flexible platform for the secure distribution of digital media files. The Windows Media Rights Manager 9 Series SDK will be sent to you after Microsoft accepts a signed SDK license agreement from you. You will also need to obtain digital certificates to verify your identity.
Windows Media Services 4.1 SDK
The Windows Media Services 4.1 SDK component enables content developers and system administrators to support Windows Media Technologies in their Web sites today.

Posted by +깡통+

http://msdn.microsoft.com/windowsmedia/downloads/default.aspx

 

Windows Media Downloads

Microsoft® Windows Media® 9 Series consists of a number of software components that you can use to create complete streaming media solutions. Within each component is a suite of related programs, plug-ins, tools, and utilities. Together, these components provide an end-to-end solution for streaming multimedia, from content authoring to delivery and playback.   


Latest Windows Media Downloads

  • Media Transfer Protocol Porting Kit

    Introduces the new Media Transfer Protocol (MTP), which enables you to manage content on any portable device with storage. MTP was first shipped as part of the Windows Media Device Manager 10 SDK. This porting kit includes the complete MTP specification, design documentation, sample source code, software to implement a PC-based MTP simulator, and MTP test tools.

    The latest version of the MTP Porting Kit includes thoroughly updated ANSI C source code as well as a redistributable MTP driver for Windows 98 Second Edition, Windows Millennium Edition, and Windows 2000 operating systems. This driver is implemented as a Windows Media Device Manager Service Provider and supports device access through Windows Media Player 9 Series and other device applications that work on the Windows Media Format 9 Series Software Development Kit (SDK).
      

  • Windows Media Services 9 Series SDK

    Part of the Microsoft Platform SDK for Windows Server 2003, the Windows Media Services 9 Series SDK enables you to programmatically control, configure, and monitor a server running Windows Media Services 9 Series.   

  • Windows Media Format 9.5 SDK

    Introduces new features to provide enhanced content security and flexibility. Includes a new version of the Windows Media Video Image codec, as well as support for the new Windows Media Video 9 Advanced Profile.   

  • Windows Media Player 10 SDK

    Introduces a range of new features and functionality for customizing Windows Media Player and using the Windows Media Player control. Some of the features represent entirely new Player technologies; others extend and update existing technologies to enable new scenarios.   

  • Windows Media Device Manager 10 SDK

    Introduces new features to help you work with devices that support the new Media Transfer Protocol (MTP), devices that support a modified Windows CE (Pocket PC) class driver, and mass storage devices exposed by the new Microsoft Cluster (MSC) class driver. The Windows Media Device Manager 10 SDK is included in the Windows Media Format 9.5 SDK. You will also need to obtain digital certificates to enable transfer of content protected by Windows Media digital rights management (DRM).   

  • Windows Media Rights Manager 10 SDK

    Introduces new features to help you manage large numbers of licenses more easily, revoke specific licenses, and use new rights to support consumer scenarios like sharing music or burning playlists to CDs. Also use this SDK to work with portable devices that support Windows Media DRM 10 for Portable Devices. The Windows Media Rights Manager 10 SDK will be sent to you after Microsoft accepts a signed SDK license agreement from you. You will also need to obtain digital certificates to verify your identity.   

Older Windows Media Downloads

  • Windows Media Device Manager 9 Series SDK

    Installed along with the Windows Media Format 9 Series SDK, the Windows Media Device Manager SDK provides technology and documentation to enable the transfer of audio content to portable audio players. The Windows Media Device Manager SDK can be used either to construct an application which transfers audio content to a portable audio player or to construct a Service Provider, a high level software driver used by Windows Media Device Manager applications to access a class of audio players.

    The Windows Media Device Manager SDK is included in the Windows Media Format 9 Series SDK which you can obtain by clicking on the link above. If your application does not need to manipulate content protected with Microsoft digital rights management, the Windows Media Format SDK click-through EULA grants use and distribution rights for applications. If your Windows Media Device Manager-based application manipulates protected content, you should request the Windows Media Device Manager SDK DRM Agreement. For more information refer to the Windows Media Licensing Form.
      

  • Sample Code for Using the Windows Media Audio and Video Codec Interfaces

    This package includes documentation and sample code that demonstrate how to use the Codec APIs in the Windows Media Format 9 Series SDK.   

  • Windows Media Format 9 Series SDK

    With support for the new Windows Media Audio and Video 9 Series codecs, the Windows Media Format SDK provides technology and documentation you can use to create and manipulate Windows Media files in your applications.

    Before you can download the SDK, you must first register with Microsoft by filling out the form at the above link. Instructions on how to download this software will then be e-mailed to you. If your application does not need to manipulate content protected with Microsoft digital rights management, you can simply accept the new Windows Media Format 9 Series SDK click-through EULA. The click-through EULA grants use and distribution rights if you do not need to manipulate DRM content. If your application needs access to protected content, you should request a Windows Media Format SDK DRM Certificate Agreement. For more information refer to the Windows Media Licensing Form.
      

  • Windows Media Player 9 Series SDK

    The Microsoft Windows Media Player 9 Series SDK provides information and tools to customize Windows Media Player and to use the Windows Media Player ActiveX® control. This documentation also provides information about using Windows Media metafiles.   

  • Windows Media Encoder 9 Series SDK

    The Microsoft Windows Media Encoder 9 Series SDK is designed for anyone who wants to develop a Windows Media Encoder application by using a powerful automation-based application programming interface (API).   

  • Windows Media Rights Manager 9 Series SDK

    This SDK provides the tools to create an end-to-end digital rights management (DRM) system that offers content providers and retailers a flexible platform for the secure distribution of digital media files. The Windows Media Rights Manager 9 Series SDK will be sent to you after Microsoft accepts a signed SDK license agreement from you. You will also need to obtain digital certificates to verify your identity.   

  • Windows Media Services 4.1 SDK

    The Windows Media Services 4.1 SDK component enables content developers and system administrators to support Windows Media Technologies in their Web sites today.    


Posted by +깡통+

 [답변]자답입니다 // 혹시 정확한 사용방법 아시는 분 계시면 꼭 알려주십시오 2005-01-18 오후 11:58:52
동구니 (nethe)  동구니님께 메시지 보내기동구니님을 내 주소록에 추가합니다.동구니님의 개인게시판 가기 번호: 494156   / 평점:  (-)  

 아무리 제가 해놓고 봐도 SDK와는 다릅니다. SDK의 이코드 저코드 끌어쓰다보니 어떻게 해결은 했습니다.

 

먼저 보통 방법처럼 windows media player ActiveX 콤포넌트를 삽입합니다. 그다음 변수지정하면 임의의 소스화일과 헤더화일이 생기는데 (CWMPPlayer4 기반입니다) 이걸 무시하고 그냥 콥포넌트를 삽입한 헤더에 CWMPPlayer [변수명] 형태로 바꾸어 줍니다.

 

다음 구현부분에서 현재의 CWMPPlaeyr 인터페이스 대신 자신이 사용하고 싶은 인터페이스를 불러옵니다. 여기서 인터페이스란 문자그대로 인터페이스 입니다. 미디어 플레이어의 다양한 기능을 각 부문별로 포장해놓은 패키지라고 생각하면 됩니다.

 

방법은 다음과 같습니다.

 

1) 지금 사용중인 미디어플레이어 개체에서 사용하고자 하는 인터페이스 포인터를 얻는다

2) queryinterface 명령으로 임의의 인터페이스에 1)에서 구한 포인터값을 넘긴다.

3) 임의의 인터페이스를 사용한다

4) 사용을 완료한 인터페이스 포인터를 반납한다.

 

 

// 헤더

 

#include "CWMPPlayer.h" // 프로젝트>클레스 추가>ActiveX의...> windows media player 에서 CWMPPlayer을 찾아추가합니다.

#include "wmp.h" // 미디어플레이어10의 SDK 에 삽입되어있습니다.

 

class Cmp10View : public CFormView

{

    ...

 

    // CNonameClass m_Player

    CWMPPlayer m_Player;

 

    ...

};

 

 

 

// 소스

void Cmp10View::OnBnClickedPlay()

{

    IDispatch *pSettings = NULL;

    IWMPControls *pSettings2 = NULL; // 임의의 인터페이스, 여기서는 컨트롤 인터페이스

    HRESULT hr = S_OK;

 

    // Get a pointer to the IDispatch interface from CWMPSettings.

    pSettings = m_Player.get_controls(); // get_controls는 컨트롤 인터페이스의 포인터를 반환합니다.

 

    if( pSettings != NULL )

    {

        // Get a pointer to the IWMPSettings2 interface.

        hr = pSettings->QueryInterface(&pSettings2); // 임의의 컨트롤 인터페이스에 현재 사용중인 컨트롤 인터페이스의 포인터를 넘깁니다

        if( SUCCEEDED( hr ) )

        {

            hr = pSettings2->play();  // 컨트롤 인터페이스를 사용합니다.

        }

 

        // Don't forget to call release through the pointers.

        if( pSettings )

        {

            pSettings->Release();

        }

 

        if( pSettings2 )

        {

            pSettings2->Release();

        }

    }

}

 

 

일단 문제 없이 작동합니다만, 이것 말고 정석이 있을것으로 사료됩니다.

 


Posted by +깡통+
error C2146: 구문 오류 : ';'이(가) 'PVOID64' 식별자 앞에 없습니다.
 
이렇게 되어 있던것을
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;   
 
아래처럼 바꾸자.
typedef void* PVOID;
typedef void* POINTER_64;
typedef POINTER_64 PVOID64;

Posted by +깡통+
Player.uiMode

The uiMode property specifies or retrieves a value indicating which controls are shown in the user interface.

Syntax

player.uiMode

Possible Values

This property is a read/write String.

Value Description Audio example Video example
invisible Windows Media Player is embedded without any visible user interface (controls, video or visualization window). (Nothing is displayed.) (Nothing is displayed.)
none Windows Media Player is embedded without controls, and with only the video or visualization window displayed.
mini Windows Media Player is embedded with the status window, play/pause, stop, mute, and volume controls shown in addition to the video or visualization window.
full Default. Windows Media Player is embedded with the status window, seek bar, play/pause, stop, mute, next, previous, fast forward, fast reverse, and volume controls in addition to the video or visualization window.
custom Windows Media Player is embedded with a custom user interface. Can only be used in C++ programs. (Custom user interface is displayed.) (Custom user interface is displayed.)

Remarks

This property specifies the appearance of the embedded Windows Media Player. When uiMode is set to "none", "mini", or "full", a window is present for the display of video clips and audio visualizations. This window can be hidden in mini or full mode by setting the height attribute of the OBJECT tag to 40, which is measured from the bottom, and leaves the controls portion of the user interface visible. If no embedded interface is desired, set both the width and height attributes to zero.

If uiMode is set to "invisible", no user interface is displayed, but space is still reserved on the page as specified by width and height. This is useful for retaining page layout when uiMode can change. Additionally, the reserved space is transparent, so any elements layered behind the control will be visible.

If uiMode is set to "full" or "mini", Windows Media Player displays transport controls in full-screen mode. If uiMode is set to "none", no controls are displayed in full-screen mode.

If the window is visible and audio content is being played, the visualization displayed will be the one most recently used in Windows Media Player.

If uiMode is set to "custom" in a C++ program that implements IWMPRemoteMediaServices, the skin file indicated by IWMPRemoteMediaServices::GetCustomUIMode is displayed.

During full-screen playback, Windows Media Player hides the mouse cursor when enableContextMenu equals false and uiMode equals "none".

Example Code

The following example creates an HTML SELECT element that allows the user to change the user interface for an embedded Player object. The Player object was created with ID = "Player".

<!-- Create an HTML SELECT element. -->
<SELECT  ID = UI  LANGUAGE="JScript"

         /* Specify the UI mode the user selects. */
         onChange = "Player.uiMode = UI.value">

/* These are the four UI mode options. */
<OPTION VALUE="invisible">Invisible
<OPTION VALUE="none">No Controls
<OPTION VALUE="mini">Mini Player
<OPTION VALUE="full">Full Player
</SELECT>

Windows Media Player 10 Mobile: This property only accepts or returns values of "none" or "full". On Smartphone devices, only playback status and a counter are displayed when uiMode is set to "full".

Requirements

Version: Windows Media Player version 7.0 or later. Windows Media Player 9 Series or later for "invisible" or "custom".

Library: Use wmp.dll.

See Also


Posted by +깡통+

--------------------Configuration: Player - Win32 Debug--------------------
Compiling...
playwnd.cpp
Linking...
playwnd.obj : error LNK2001: unresolved external symbol _IID_IBasicAudio
playwnd.obj : error LNK2001: unresolved external symbol _IID_IBasicVideo
playwnd.obj : error LNK2001: unresolved external symbol _IID_IVideoWindow
playwnd.obj : error LNK2001: unresolved external symbol _IID_IMediaPosition
playwnd.obj : error LNK2001: unresolved external symbol _IID_IMediaSeeking
playwnd.obj : error LNK2001: unresolved external symbol _IID_IMediaEventEx
playwnd.obj : error LNK2001: unresolved external symbol _IID_IMediaControl
playwnd.obj : error LNK2001: unresolved external symbol _CLSID_FilterGraph
playwnd.obj : error LNK2001: unresolved external symbol _IID_IGraphBuilder
Debug/Player.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

Player.exe - 10 error(s), 0 warning(s)


해결방법
Project -> Setting -> Link -> strmiids.lib 를 추가한다.

Posted by +깡통+
Posted by +깡통+

그래프에디터다 앞으로 친숙해져야 할 놈..

메모 *
비디오 렌더 필터와 오디오 렌더 필터
다이렉트쇼에서 제공하는 기본 필터 중에서 비디오 렌더(Video Renderer) 필터와 오디오 렌터(Default DirectSound Device) 필터가 가장 널리 쓰인다. 이 필터들은 비디오나 오디오 스트림에 렌더링을 수행하면 자동으로 추가되기 때문에 쉽게 구할 수 있다.
그러나 더 많은 필터가 필요하다면 필터 대화상자를 통해 필터를 추가해야 한다.
비디오 렌더 필터는 DirectShow Filters 범주에 있으며
오디오 렌더 필터는 Audio Renderers 범주에 있다.



Posted by +깡통+
다이렉트 쇼는 마이크로소프트웨어사에서 만들어 놓은 재미있는 기능이다.
신화선 님의 DirectShow 멀티미디어 프로그래밍 ( 국내 유일 ) 책을 가지고 공부하자.

Posted by +깡통+

CButton 을 상속받는 클래스를 만들어 처리합니다.


// MSNButton.cpp : 구현 파일입니다.
//

#include "stdafx.h"
#include "ImageButton.h"
#include "MSNButton.h"


// CMSNButton

IMPLEMENT_DYNAMIC(CMSNButton, CButton)

CMSNButton::CMSNButton()
{
 m_bTracking = FALSE;
 m_bHover = FALSE;
}

CMSNButton::~CMSNButton()
{
}


BEGIN_MESSAGE_MAP(CMSNButton, CButton)
 ON_WM_DRAWITEM()
 ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
 ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
 ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

 

// CMSNButton 메시지 처리기입니다.

void CMSNButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{

 // TODO:  지정된 항목을 그리는 코드를 추가합니다.
 CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
 CDC MemDC;
 MemDC.CreateCompatibleDC(pDC);

 BITMAP bmpInfo;
 CBitmap Bmp;
 CBitmap* pOldBitmap = NULL;
 Bmp.LoadBitmapW(IDB_BITMAP1);
 Bmp.GetBitmap(&bmpInfo);

 pOldBitmap = MemDC.SelectObject(&Bmp);

 // 버튼이 선택되었는가?
 if(lpDrawItemStruct->itemState & ODS_SELECTED)
 {
  // 세번째 버튼 이미지 출력
  pDC->BitBlt(0,0,bmpInfo.bmWidth, bmpInfo.bmHeight, &MemDC, 206, 0, SRCCOPY);
 }
 else
 {
  // 마우스 포인터가 버튼 위에 존재하는가?
  if(m_bHover)
  {
   // 두번째 버튼 이미지 출력!
   pDC->BitBlt(0,0, bmpInfo.bmWidth, bmpInfo.bmHeight, &MemDC, 103, 0, SRCCOPY);
   //pDC->BitBlt(0,0, bmpInfo.bmWidth, bmpInfo.bmHeight, &MemDC, 50, 0, SRCCOPY);
  }
  else
  {
   // 첫번째 버튼 이미지 출력!
   pDC->BitBlt(0,0, bmpInfo.bmWidth, bmpInfo.bmHeight, &MemDC, 0, 0, SRCCOPY);
  }
 }

 MemDC.SelectObject(pOldBitmap);
}

void CMSNButton::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
 
 // 마우스 트래킹이 시작되었는가???
 if(!m_bTracking)
 {
  TRACKMOUSEEVENT tme;
  tme.cbSize = sizeof(tme);
  tme.hwndTrack = m_hWnd;
  tme.dwFlags = TME_LEAVE | TME_HOVER;
  tme.dwHoverTime = 1;
  m_bTracking = _TrackMouseEvent(&tme);
 }
 
 CButton::OnMouseMove(nFlags, point);
}

LRESULT CMSNButton::OnMouseHover(WPARAM wparam, LPARAM lparam)
{
 // 마우스 포인터가 버튼 위에서 움직이고 있음.
 m_bHover = TRUE;
 RedrawWindow();
 return 0;
}

LRESULT CMSNButton::OnMouseLeave(WPARAM wparam, LPARAM lparam)
{
 // 마우스 포인터가 버튼 밖으로 나갔음.
 m_bTracking = FALSE;
 m_bHover = FALSE;
 RedrawWindow();
 return 0;
}


출처 : Windows MFC 정복 (가남사)

Posted by +깡통+

TRACKMOUSEEVENT 구조체

 희한하게 검색해보니, TRACKMOUSEEVENT구조체를 이용하는 팁이 하나도 안올라와 있더군요. 그래서 팁 비슷하게 올려봅니다.
예를 든다면, 윈도우에서 마우스 포인터의 위치가 클라이언트에 있는지 아닌지를 알려주는 간단한 팁입니다.
일단 TRACKMOUSEEVENT 구조체를 보면 다음과 같이 정의 되어 있습니다.

typedef struct tagTRACKMOUSEEVENT {
    DWORD cbSize; // 구조체의 크기
    DWORD dwFlags; // TME_HOVER, TME_LEAVE등 지정할 수 있다.
    HWND  hwndTrack; // 실지로 이벤트를 받을 윈도우 핸들
    DWORD dwHoverTime; // 밀리세칸단위의 hover 타임아웃을 지정한다.
} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; 

사용할 함수는 BOOL _TrackMouseEvent(LPTRACKMOUSEEVENT lptrack);
윈도우 95에서는 안되고, 98이상에서만 되고, NT에서는 당근이 됩니다.

그럼 간단하게 예를 들어보겠습니다. 
먼저 WM_MOUSEMOVE 이벤트를 정의합니다.
int m_Flag = 1;

..CMyDlg::OnMouseMove(...)
{
    MouseEvent(); //새로 정의할 함수입니다.
}

void CMyDlg::MouseEvent()
{
   TRACKMOUSEEVENT tme;
   tme.cbSize = sizeof(TRACKMOUSEEVENT);
   if(m_Flag == 0)  tme.dwFlags = TME_LEAVE;
   else tme.dwFlags = TME_HOVER;
   tme.hwndTrack = m_hWnd; // 현재 자신의 윈도우 핸들 지정
   tme.dwHoverTime = 10; //10 밀리세칸으로 지정

   _TrackMouseEvent( &tme );
}

여기서 tme.dwFlags=TME_HOVER 이렇게 정의해놓으면, 즉 마우스가 클라이언트영역으로 들어올때, WM_MOUSEHOVER 이벤트를 발산시킵니다. 발산? 그럼 여기에 맞게, 이벤트 부분을 정의합니다.
먼저 헤더에 다음과 같이 정의합니다.
afx_msg UINT OnMouseHover(WPARAM, LPARAM);
그리고 cpp에다가 ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
이렇게 선언합니다.
그리고, 함수를 정의합니다.

UINT MyDlg::OnMouseHover(WPARAM, LPARAM)
{
   m_Flag = 0;
   m_edit.ShowWindow(TRUE);
   return 0;
}
마찬가지로 OnMouseLeave도 같은 방식으로 정의해줍니다.
UINT MyDlg::OnMouseLeave(WPARAM, LPARAM)
{  m_Flag = 1;
   m_edit.ShowWindow(FALSE);
   return 0;
}
위와 같이 정의하시고, 컴파일해보십시오.
아마 클라이언트로 마우스가 위치되면, 에디트박스가 보이고
그렇지 않으면, 에디트가 사라질겁니다.
반응속도도 빠르고, 깜빡임도 없고, 무리없이 잘돌아가더군요.
이걸로, hotButton기능을 구현해봐도 되겠더라고요.
참고로 SetCapture, ReleaseCapture도 이런 기능을 충분히 구현해주지만, 모든 이벤트를 잡아먹어버리는 그런식의 기능은 않습니다. 참 편리합니다만 더 나은 방법이 있으면, 더 글을 올려주세요.

 

http://www.devpia.com/Forum/BoardView.aspx?no=1025&ref=545&forumname=VC_LEC&stype=VCF&KeyW=TRACKMOUSEEVENT&KeyR=titlecontent

Posted by +깡통+


날 가지고 놀던 녀석 -_-;;
Posted by +깡통+
MBC 해외걸작 다큐멘터리
어제 이 방송을 보구 잤습니다.

참으로 부럽더군요.
집안에 샘이 흐른다는 것..
세수도 하고 설겆이 하는 곳에서 물고기가 빤히 쳐다보는 ㅎㅎㅎㅎ
아무튼 신기한 물의 나라였습니다.

카바타라고 불리우는 일본의 하수 처리 방식? 이라고 합니다.
일본 전역에서 사용되는 방법이라고 하네요.  깨끗한 하천을 유지하는 방법인것 같습니다.


잡은 물고기 중에서 작은것은 새들을 위해 남겨둡니다.  자연과 더불어 사는 법..


p.s
아마도 오늘 저의 블로그에 찾아오시는 분들은 사토야마 영상을 얻기 위하신듯 합니다.
'토토브라우저'라는 유료 전송 사이트를 통해서 다운로드 받으실 수 있습니다.
물의 정원 사토야마 영상미가 땡기네요.  그리고 꼭 가보고 싶은 곳이 되었습니다.
Posted by +깡통+
이전버튼 1 2 3 4 5 6 이전버튼