SummaryInfo 에 작성날짜 값 문의

SummaryInfo의 날짜 정보들은 FILETIME으로 저장됩니다.
그래서 해당 시간을 SYSTEMTIME으로 변경하면 문서 정보에 표시되는 날짜/시간으로 변환할 수 있습니다.

현재 문서의 작성 날짜를 가져오는 방법(C++)

FILETIME fileTime, localFileTime;
SYSTEMTIME systemTime;

memset(&fileTime, 0, sizeof(FILETIME));
memset(&localFileTime, 0, sizeof(FILETIME));
memset(&systemTime, 0, sizeof(SYSTEMTIME));

CXHwpDocuments docs = m_app.get_XHwpDocuments();
CXHwpDocument doc = docs.get_Active_XHwpDocument();
CXHwpSummaryInfo summaryInfo = doc.get_XHwpSummaryInfo();

fileTime.dwHighDateTime = summaryInfo.get_CreationTimeHigh();
fileTime.dwLowDateTime = summaryInfo.get_CreationTimeLow();

FileTimeToLocalFileTime(&fileTime, &localFileTime);
FileTimeToSystemTime(&localFileTime, &systemTime);

WCHAR szLocalTime[255] = { 0, };

// Locale을 시스템의 로케일값을 구해서 설정할 것! 
// 임의로 LOCALE_CUSTOM_DEFAULT 사용함
GetTimeFormat(LOCALE_CUSTOM_DEFAULT, 0, &systemTime, NULL, szLocalTime, 255);

image

감사합니다.

1개의 좋아요

안녕하세요. 코드 감사합니다.
그런데 high와 low의 차이는 뭔가요?

안녕하세요 ^^

CXHwpSummaryInfo의 getCreationTimeHigh, getCreationTimeLow를 통해 High, Low를 가져올수있습니다.

해당 구조는 win32의 FILETIME구조체를 나타냅니다.

기존 int로 시간을 모두 나타낼수 없기때문에 데이터를 나눠서 저장하는 방식입니다.

두개의 값이 합쳐져 64비트의 시간 값으로 변경이 가능합니다 ^^

감사합니다.

typedef struct _FILETIME {
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
1개의 좋아요

빠른 답변 감사합니다~~

몰랐던 건데…
FILETIME 구조체에 대해서 알 수 있게 되는 계기가 되었습니다.~