Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Microsoft admit to quick hacks

Microsoft admit to quick hacks

Scheduled Pinned Locked Moved The Lounge
htmlcomquestion
15 Posts 11 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Jeremy Pullicino
    wrote on last edited by
    #1

    Quite a disgrace from MS.... http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp [^] "Hey man, Taliban, Tali me Banana."

    T M N 3 Replies Last reply
    0
    • J Jeremy Pullicino

      Quite a disgrace from MS.... http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp [^] "Hey man, Taliban, Tali me Banana."

      T Offline
      T Offline
      Tim Smith
      wrote on last edited by
      #2

      LOL, I can see the MS people laughing their asses off wondering what the Linix people will make of that on the register. Tim Smith "Programmers are always surrounded by complexity; we can not avoid it... If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather that part of the solution." Hoare - 1980 ACM Turing Award Lecture

      1 Reply Last reply
      0
      • J Jeremy Pullicino

        Quite a disgrace from MS.... http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp [^] "Hey man, Taliban, Tali me Banana."

        M Offline
        M Offline
        Michael P Butler
        wrote on last edited by
        #3

        Makes an honest change. Usually it's dwReserved. Michael :-) Programming is great. First they pay you to introduce bugs into software. Then they pay you to remove them again.

        T 1 Reply Last reply
        0
        • J Jeremy Pullicino

          Quite a disgrace from MS.... http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_fio_context.asp [^] "Hey man, Taliban, Tali me Banana."

          N Offline
          N Offline
          Nnamdi Onyeyiri
          wrote on last edited by
          #4

          LOL what i dont get is, why is it there, it says thaty it is never used, so why put it there :confused:


          :suss: Email: theeclypse@hotmail.com   URL: http://www.onyeyiri.co.uk
          :suss:"All programmers are playwrights and all computers are lousy actors."

          N P R 3 Replies Last reply
          0
          • N Nnamdi Onyeyiri

            LOL what i dont get is, why is it there, it says thaty it is never used, so why put it there :confused:


            :suss: Email: theeclypse@hotmail.com   URL: http://www.onyeyiri.co.uk
            :suss:"All programmers are playwrights and all computers are lousy actors."

            N Offline
            N Offline
            Navin
            wrote on last edited by
            #5

            Nnamdi Onyeyiri wrote: what i dont get is, why is it there, it says thaty it is never used, so why put it there I've seen that kind of thing a few times myself, but usually it's to preserve backwards compatibility to like Windows 3.1 and stuff. These cases seem weird though, since they require at least Windows 2000... :confused: There are three types of people in this world: those who can count, and those who can't.

            1 Reply Last reply
            0
            • M Michael P Butler

              Makes an honest change. Usually it's dwReserved. Michael :-) Programming is great. First they pay you to introduce bugs into software. Then they pay you to remove them again.

              T Offline
              T Offline
              Tomasz Sowinski
              wrote on last edited by
              #6

              Michael P Butler wrote: Makes an honest change. Usually it's dwReserved. LOL So the millions spent on trial were not lost :) Tomasz Sowinski -- http://www.shooltz.com

              Free your mind and your ass will follow.

              1 Reply Last reply
              0
              • N Nnamdi Onyeyiri

                LOL what i dont get is, why is it there, it says thaty it is never used, so why put it there :confused:


                :suss: Email: theeclypse@hotmail.com   URL: http://www.onyeyiri.co.uk
                :suss:"All programmers are playwrights and all computers are lousy actors."

                P Offline
                P Offline
                Paul Riley
                wrote on last edited by
                #7

                I'd guess you'll find it works like this: Function doesn't work. Insert new argument for testing purposes. Adjust all testing programs to pass new argument. Fix bug in function. If it ain't broke, don't fix it any more. Rename argument to dwReserved in case you might want to use it in a later version. This has been going on for years, but this time the name gives you a clue as to why :laugh:

                1 Reply Last reply
                0
                • N Nnamdi Onyeyiri

                  LOL what i dont get is, why is it there, it says thaty it is never used, so why put it there :confused:


                  :suss: Email: theeclypse@hotmail.com   URL: http://www.onyeyiri.co.uk
                  :suss:"All programmers are playwrights and all computers are lousy actors."

                  R Offline
                  R Offline
                  Roger Wright
                  wrote on last edited by
                  #8

                  Nnamdi Onyeyiri wrote: it says thaty it is never used, so why put it there I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. This Signature is Temporarily Out of Order

                  D 1 Reply Last reply
                  0
                  • R Roger Wright

                    Nnamdi Onyeyiri wrote: it says thaty it is never used, so why put it there I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. This Signature is Temporarily Out of Order

                    D Offline
                    D Offline
                    Daniel Turini
                    wrote on last edited by
                    #9

                    Roger Wright wrote: I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Why do the hell they didn't use the dwReserved in CoInitialize to set the apt. model ? Why creating a Ex function that has the same dwReserved, plus the apt. model choice ? Concussus surgo. When struck I rise.

                    T P R 3 Replies Last reply
                    0
                    • D Daniel Turini

                      Roger Wright wrote: I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Why do the hell they didn't use the dwReserved in CoInitialize to set the apt. model ? Why creating a Ex function that has the same dwReserved, plus the apt. model choice ? Concussus surgo. When struck I rise.

                      T Offline
                      T Offline
                      Tomasz Sowinski
                      wrote on last edited by
                      #10

                      Daniel Turini wrote: So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Windows system DLL which passes -1 instead of NULL to achieve something special? ;) Tomasz Sowinski -- http://www.shooltz.com

                      Free your mind and your ass will follow.

                      D 1 Reply Last reply
                      0
                      • D Daniel Turini

                        Roger Wright wrote: I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Why do the hell they didn't use the dwReserved in CoInitialize to set the apt. model ? Why creating a Ex function that has the same dwReserved, plus the apt. model choice ? Concussus surgo. When struck I rise.

                        P Offline
                        P Offline
                        pepe 0
                        wrote on last edited by
                        #11

                        Daniel Turini wrote: So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Why do the hell they didn't use the dwReserved in CoInitialize to set the apt. model ? Why creating a Ex function that has the same dwReserved, plus the apt. model choice ? To be consistent with their inconsistency. "640K ought to be enough for anybody." Bill Gates

                        1 Reply Last reply
                        0
                        • D Daniel Turini

                          Roger Wright wrote: I'd say it's good engineering. At the beginning of a design you often don't know exactly what you need, so you design in a little extra. In electronics design, for instance, you build cables with more wires in them than needed, because a future mod may require another couple of signals. In a circuit, you leave a few unused gates in the design, just in case you need to expand it some. In software, you might not, at the beginning of a project, know exactly which parameters you may need to pass down the road. So your data structures might include a parameter or two that don't initially have a defined use. If in the course of development you discover a need for something unexpected, there's already a place to put it without extensive redesign of the whole body of code. I don't know if it's still a significant problem, but memory alignment used to be a hassle in earlier Intel architectures, and padding was used to ensure proper alignment on a word boundary. So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Why do the hell they didn't use the dwReserved in CoInitialize to set the apt. model ? Why creating a Ex function that has the same dwReserved, plus the apt. model choice ? Concussus surgo. When struck I rise.

                          R Offline
                          R Offline
                          Roger Wright
                          wrote on last edited by
                          #12

                          Habit, maybe? I don't pretend to read minds. But I do always like to leave myself some wiggle room in a design, hardware or software, and if there's no pressing need to use up my spares during a mod, I'll keep them for later. This Signature is Temporarily Out of Order

                          1 Reply Last reply
                          0
                          • T Tomasz Sowinski

                            Daniel Turini wrote: So, explain me CoInitialize(NULL) and CoInitializeEx(NULL, APT_MODEL); Windows system DLL which passes -1 instead of NULL to achieve something special? ;) Tomasz Sowinski -- http://www.shooltz.com

                            Free your mind and your ass will follow.

                            D Offline
                            D Offline
                            Daniel Turini
                            wrote on last edited by
                            #13

                            Tomasz Sowinski wrote: Windows system DLL which passes -1 instead of NULL to achieve something special? I vote this for the most plausible explanation :) Or, for saving some typing: if you have a parameter, you don't need a local variable ;P Maybe I should start calling CoInitialize(rand()) Someday I may discover a totally new apartment model :) Concussus surgo. When struck I rise.

                            S 1 Reply Last reply
                            0
                            • D Daniel Turini

                              Tomasz Sowinski wrote: Windows system DLL which passes -1 instead of NULL to achieve something special? I vote this for the most plausible explanation :) Or, for saving some typing: if you have a parameter, you don't need a local variable ;P Maybe I should start calling CoInitialize(rand()) Someday I may discover a totally new apartment model :) Concussus surgo. When struck I rise.

                              S Offline
                              S Offline
                              Shog9 0
                              wrote on last edited by
                              #14

                              Daniel Turini wrote: Someday I may discover a totally new apartment model COINIT_EFFICIENCY Multiple objects can exist within the same apartment and easily share resources, but they steal each other's food and tie up bathrooms for too long in the morning...

                              Shog9

                              Let me hear you / Make decisions / Without your television

                              Join Team CodeProject

                              D 1 Reply Last reply
                              0
                              • S Shog9 0

                                Daniel Turini wrote: Someday I may discover a totally new apartment model COINIT_EFFICIENCY Multiple objects can exist within the same apartment and easily share resources, but they steal each other's food and tie up bathrooms for too long in the morning...

                                Shog9

                                Let me hear you / Make decisions / Without your television

                                Join Team CodeProject

                                D Offline
                                D Offline
                                Daniel Turini
                                wrote on last edited by
                                #15

                                Shog9 wrote: and tie up bathrooms for too long in the morning... This is what I call a CRITICAL_SECTION ! Concussus surgo. When struck I rise.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups