NPAPI 메모리 관리 (Memory management in NPAPI)
NPAPI 메모리 관리 (Memory management in NPAPI) NPAPI의 NPObject 객체도 참조 카운트를 사용하여 메모리를 관리하고 있습니다.NPObject를 다루를 함수들은 아래와 같이 다양합니다. - NPN_CreateObject, NPN_RetainObject, NPN_Release, NPN_Evaluate, NPN_GetValue,NPN_SetValue, NPN_GetProperty, NPN_SetProperty, 등등 그런데 참조 카운트를 증가하고 감소하는 메커니즘에 대한 이해가 쉽지 않아 구글링을….다음과 같이 누군가가 작성해 놓았네요 [1] (원문은 맨 아래 링크 클릭) 이해한 바에 따르면,위에 언급한 NPObject 함수들에서 NPObject를 얻으면, 작업을 마친 후에..
더보기
[npruntime] NPVariant로 배열(array) 넘기기 및 받기
npapi/npruntime 에는 자료형으로 NPVariant 형을 사용하는데, NPVariant 에는 array 타입이 없습니다. 다시 말해서, javascript에서 플러그인으로 배열형을 넘겨줄때 NPVariant 타입으로 넘기면 되는데,... NPVariant 타입은 아래와 같이 7개가 전부 입니다. : NPVariantType_Void, NPVariantType_Null, NPVariantType_Bool, NPVariantType_Double, NPVariantType_Int32, NPVariantType_String, NPVariantType_Object 그래서, 플러그인에서 javascript로 배열 타입을 넘겨 줄때는 따로 처리를 해줘야 합니다. javascript로 넘겨준다는 것이 NPV..
더보기
NPAPI로 Browser Cookie 설정하기
NPAPI로 Browser Cookie 설정하기 파이어폭스와 사파리에서 동작 (오페라, IE는 비정상 동작, 크롬은 안해봤음) Gecko 1.9 이하 버전 :GetCookie()if( NPN_GetValue(npInstance, NPNVWindowNPObject, &pWndObject) == NPERR_NO_ERROR) { if(NPN_GetProperty(npInstance, pWndObject,NPN_GetStringIdentifier("document"), &npDocument) == true) { if(NPN_GetProperty(npInstance, NPVARIANT_TO_OBJECT(npDocument), NPN_GetStringIdentifier("cookie"), &npCookie) == ..
더보기