510{
514 PIMEMENUITEMINFOW pItemsBase;
515
516 dwCount = pView->dwCount;
517
518 if (!lpImeMenuItems)
519 return dwCount;
520
521 if (dwCount == 0)
522 return 0;
523
524
526
527 if (pView->dwBitmapListOffset)
528 {
531
533 {
535
537
538
539 if (
pCur->dibBitsPtr)
541
542
544 {
546 if ((
PBYTE)pNextCur < pViewBase ||
547 (
PBYTE)pNextCur >= pViewBase + pView->dwBufferSize)
548 {
549 ERR(
"Invalid dwNext\n");
550 return 0;
551 }
554 }
555 else
556 {
559 }
560 }
561 }
562
563
564 if (pView->dwItemsOffset)
565 {
566 pItemsBase = (PIMEMENUITEMINFOW)(pViewBase + pView->dwItemsOffset);
567
568 if ((
PBYTE)pItemsBase < pViewBase || (
PBYTE)pItemsBase >= pViewBase + pView->dwBufferSize)
569 return 0;
570
571
572 if (dwCount > 0)
573 {
577
579 return 0;
580 }
581
582 pView->dwItemsOffset = (
ULONG_PTR)pItemsBase;
583 }
584 else
585 {
586 return 0;
587 }
588
589
590 for (
i = 0;
i < dwCount;
i++)
591 {
592 PIMEMENUITEMINFOW pItem =
594
595
596 if (pItem->hbmpChecked)
597 {
599 if ((
PBYTE)pN < pViewBase || (
PBYTE)pN >= pViewBase + pView->dwBufferSize)
600 {
601 ERR(
"Invalid hbmpChecked\n");
602 return 0;
603 }
605 }
606
607
608 if (pItem->hbmpUnchecked)
609 {
611 if ((
PBYTE)pN < pViewBase || (
PBYTE)pN >= pViewBase + pView->dwBufferSize)
612 {
613 ERR(
"Invalid hbmpUnchecked\n");
614 return 0;
615 }
617 }
618
619
620 if (pItem->hbmpItem)
621 {
623 if ((
PBYTE)pN < pViewBase || (
PBYTE)pN >= pViewBase + pView->dwBufferSize)
624 {
625 ERR(
"Invalid hbmpItem\n");
626 return 0;
627 }
629 }
630 }
631
632
633 for (
i = 0;
i < dwCount;
i++)
634 {
635 PIMEMENUITEMINFOW pSrc =
637 PIMEMENUITEMINFOW pDst = &lpImeMenuItems[
i];
638
639
640 pDst->cbSize = pSrc->cbSize;
641 pDst->fType = pSrc->fType;
642 pDst->fState = pSrc->fState;
643 pDst->wID = pSrc->wID;
644 pDst->dwItemData = pSrc->dwItemData;
645
646
647 StringCbCopyW(pDst->szString,
sizeof(pDst->szString), pSrc->szString);
648
649
652
653
656
657
660 }
661
662 return dwCount;
663}
static WCHAR available[MAX_STRING_RESOURCE_LEN]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)