Class: Winevt::EventLog::Bookmark
- Inherits:
-
Object
- Object
- Winevt::EventLog::Bookmark
- Defined in:
- ext/winevt/winevt_bookmark.c
Instance Method Summary collapse
Constructor Details
#initialize(*args) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'ext/winevt/winevt_bookmark.c', line 34
static VALUE
rb_winevt_bookmark_initialize(int argc, VALUE *argv, VALUE self)
{
PWSTR bookmarkXml;
VALUE wbookmarkXmlBuf;
DWORD len;
struct WinevtBookmark *winevtBookmark;
TypedData_Get_Struct(self, struct WinevtBookmark, &rb_winevt_bookmark_type, winevtBookmark);
if (argc == 0) {
winevtBookmark->bookmark = EvtCreateBookmark(NULL);
} else if (argc == 1) {
VALUE rb_bookmarkXml;
rb_scan_args(argc, argv, "10", &rb_bookmarkXml);
Check_Type(rb_bookmarkXml, T_STRING);
// bookmarkXml : To wide char
len = MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(rb_bookmarkXml), RSTRING_LEN(rb_bookmarkXml), NULL, 0);
bookmarkXml = ALLOCV_N(WCHAR, wbookmarkXmlBuf, len+1);
MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(rb_bookmarkXml), RSTRING_LEN(rb_bookmarkXml), bookmarkXml, len);
bookmarkXml[len] = L'\0';
winevtBookmark->bookmark = EvtCreateBookmark(bookmarkXml);
ALLOCV_END(wbookmarkXmlBuf);
}
return Qnil;
}
|
Instance Method Details
#render ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'ext/winevt/winevt_bookmark.c', line 79
static VALUE
rb_winevt_bookmark_render(VALUE self)
{
char* result;
struct WinevtBookmark *winevtBookmark;
TypedData_Get_Struct(self, struct WinevtBookmark, &rb_winevt_bookmark_type, winevtBookmark);
result = render_event(winevtBookmark->bookmark, EvtRenderBookmark);
return rb_str_new2(result);
}
|
#update(event) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'ext/winevt/winevt_bookmark.c', line 63
static VALUE
rb_winevt_bookmark_update(VALUE self, VALUE event)
{
struct WinevtQuery *winevtQuery;
struct WinevtBookmark *winevtBookmark;
winevtQuery = EventQuery(event);
TypedData_Get_Struct(self, struct WinevtBookmark, &rb_winevt_bookmark_type, winevtBookmark);
if(EvtUpdateBookmark(winevtBookmark->bookmark, winevtQuery->event))
return Qtrue;
return Qfalse;
}
|