• pivot_root@lemmy.world
      link
      fedilink
      English
      arrow-up
      11
      ·
      2 months ago

      Identifying the windows string types is fun. The letters are supposed to have a meaning. Without looking them up, my guess is:

      LP_ - Length Prepended
      C_STR - C string / null-terminated
      WSTR - “Wide” string / utf-16
      TSTR - I have no idea

      • toddestan@lemmy.world
        link
        fedilink
        English
        arrow-up
        9
        ·
        2 months ago

        LP is actually “Long Pointer”, which means 32 bits. Why is that called a long pointer? Because that’s what a long pointer was on win16. Same reason a DWORD (double word) is also 32 bits, because a word was 16 bits.

        I haven’t really done much with coding 64 bit Windows applications so I don’t if it’s the same, but Windows 16 bit roots was very obvious in win32.

        • pivot_root@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          Thanks for correcting me. Considering a long is also 32 bits, a “Long Pointer” being 32 bits makes sense.

      • optional@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        I have no idea what the “T” stands for, but TSTR refers to either a Wide or ANSI string depending on whether the UNICODE symbol is defined